Как определить, когда пользователь подключает гарнитуру к устройству Android? (Напротив ACTION_AUDIO_BECOMING_NOISY)
я разрабатываю приложение со следующим требованием: если к устройству подключена гарнитура, а пользователь удаляет ее, мне нужно отключить звук всех потоков. Для этого мне нужно послушатьAudioManager.ACTION_AUDIO_BECOMING_NOISY
Broadcast. Хорошо! Не проблема здесь.
Но когда пользовательснова подключает гарнитуруМне нужно включить звук устройства. Но неттAudioManager.ACTION_AUDIO_BECOMING_NOISY
обратная трансляция. Я не могу знать, когда гарнитура снова подключена.
Одним из решений является периодически видеть, еслиAudioManager.isWiredHeadsetOn()
являетсяtrue
но это немне кажется, это хорошее решение.
Есть ли способ определить, когда пользователь подключает гарнитуру к устройству?
отредактированный: Я пытался использоватьIntent.ACTION_HEADSET_PLUG
сюда,но это нет работа.
В manifest.xml я положил:
И вот код моего:MusicIntentReceiver.java
public class MusicIntentReceiver extends BroadcastReceiver {
public void onReceive(Context ctx, Intent intent) {
AudioManager audioManager = (AudioManager)ctx.getSystemService(Context.AUDIO_SERVICE);
if (intent.getAction().equals(Intent.ACTION_HEADSET_PLUG)) {
Log.d("Let's turn the sound on!");
//other things to un-mute the streams
}
}
}
Любое другое решение попробовать?