Я пытаюсь приостановить воспроизведение музыки, когда гарнитура отключена.
Я создал BroadcastReceiver, который прослушивает намерения ACTION_HEADSET_PLUG и действует в соответствии с ними, когда состояние extra extra равно 0 (для отключенного). Моя проблема в том, что мой BroadcastReceiver получает намерение ACTION_HEADSET_PLUG всякий раз, когда начинается действие. Это не то поведение, которого я ожидал. Я ожидал, что Intent сработает только тогда, когда гарнитура подключена или отключена.
Есть ли причина, по которой намерение ACTION_HEADSET_PLUG перехватывается сразу после регистрации получателя с этим IntentFilter? Есть ли четкий способ решить эту проблему?
Я предполагаю, что, поскольку музыкальный проигрыватель по умолчанию реализует аналогичные функции, когда гарнитура отключена, это было бы возможно.
Что мне не хватает?
Это регистрационный код
registerReceiver(new HeadsetConnectionReceiver(),
new IntentFilter(Intent.ACTION_HEADSET_PLUG));
Это определение HeadsetConnectionReceiver
public class HeadsetConnectionReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
Log.w(TAG, "ACTION_HEADSET_PLUG Intent received");
}
}