2012-08-07 22 views
5

Ich entwickle eine Musik-App. Ich möchte erkennen, dass andere Apps über Lautsprecher oder Alarm klingeln, um Musik abzuspielen/anzuhalten.Wie erkennen Sie Alarmklingeln oder andere Apps mit Lautsprecher?

Für den Anruf verwende ich PhoneStateListener. Ich habe versucht, OnAudioFocusChangeListener für andere Audios zu erkennen. Aber hat nicht funktioniert.

Ich frage mich, wie man dieses Problem löst.

Antwort

8

ich mein Problem für Standard-Alarm Anwendung gelöst:

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

in Samsung Galaxy Funktioniert nicht S * – digitalfootmark

+1

Samsung hat eine Uhr App benutzerdefinierte Alarm, arbeitet mit dem Lager ein wie ein Zauber – crysxd