私は音楽アプリを開発しています。音楽の再生/一時停止にスピーカーまたはアラームが鳴っている他のアプリを検出したい。
電話の場合はPhoneStateListenerを使用します。他のオーディオを検出するためにOnAudioFocusChangeListenerを試しました。しかし、うまくいきませんでした。
この問題をどのように解決するのか疑問に思います。
デフォルトのアラームアプリケーションの問題を解決しました:
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);
}