2012-08-07 36 views
5

Tôi đang phát triển một ứng dụng âm nhạc. Tôi muốn phát hiện các ứng dụng khác sử dụng loa hoặc chuông báo thức để phát/tạm dừng nhạc.Cách phát hiện chuông báo thức hoặc các ứng dụng khác bằng loa?

Đối với cuộc gọi điện thoại, tôi sử dụng PhoneStateListener. Tôi đã thử OnAudioFocusChangeListener để phát hiện các âm thanh khác. Nhưng không hiệu quả.

Tôi tự hỏi làm thế nào để giải quyết vấn đề này.

Trả lời

8

tôi giải quyết vấn đề của tôi cho các ứng dụng báo thức mặc định:

public static final String ALARM_ALERT_ACTION = "com.android.deskclock.ALARM_ALERT"; 
public static final String ALARM_SNOOZE_ACTION = "com.android.deskclock.ALARM_SNOOZE"; 
public static final String ALARM_DISMISS_ACTION = "com.android.deskclock.ALARM_DISMISS"; 
public static final String ALARM_DONE_ACTION = "com.android.deskclock.ALARM_DONE"; 

private BroadcastReceiver mReceiver = new BroadcastReceiver() 
{ 
    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
      String action = intent.getAction(); 
      if (action.equals(ALARM_ALERT_ACTION) || action.equals(ALARM_DISMISS_ACTION) || action.equals(ALARM_SNOOZE_ACTION) || action.equals(ALARM_DONE_ACTION)) 
      { 
       // for play/pause mediaplayer 
       playPause(); 
      } 
    } 
}; 


@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    IntentFilter filter = new IntentFilter(ALARM_ALERT_ACTION); 
    filter.addAction(ALARM_DISMISS_ACTION); 
    filter.addAction(ALARM_SNOOZE_ACTION); 
    filter.addAction(ALARM_DONE_ACTION); 
    registerReceiver(mReceiver, filter); 
} 
+2

Không làm việc trong Samsung Galaxy S * – digitalfootmark

+1

Samsung có một ứng dụng tùy chỉnh đồng hồ báo thức, làm việc với các chứng khoán một mặt hàng như một nét duyên dáng – crysxd