Как обнаружить будильник или другие приложения с помощью динамика?

Я разрабатываю музыкальное приложение. Я хочу обнаружить, что другие приложения используют динамик или будильник для воспроизведения/паузы музыки.

Для телефонного звонка я использую PhoneStateListener. Я попробовал OnAudioFocusChangeListener для обнаружения других аудио. Но не сработало.

Мне интересно, как решить эту проблему.


person N3CAT1    schedule 07.08.2012    source источник


Ответы (1)


Я решил свою проблему для приложения сигнализации по умолчанию:

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);
}
person N3CAT1    schedule 10.08.2012
comment
Не работает в Samsung Galaxy S* - person digitalfootmark; 05.12.2013
comment
У Samsung есть специальное приложение для будильника, которое отлично работает со стандартным. - person crysxd; 10.02.2016
comment
не работает на будильнике LG и будильнике Google. Лучше реализовать будильник самостоятельно, чем зависеть от чего-то еще. - person user158; 21.07.2019