Делать что-то, если обнаруживает, что наушники подключены

Я хочу сделать так, чтобы при подключении наушников к устройству что-то происходило, например, появлялся значок уведомления. (У меня уже есть значок уведомлений) Но я не могу найти способ сделать это. Я хочу что-то подобное

if headphones_plugged_in {
do this 
}

Я нашел это онлайн

AudioManager.isWiredHeadsetOn()

Я просто не знаю, как бы я это использовал. Я уже добавил правильные разрешения в манифесте тоже! Если бы вы могли вести меня или связать меня с чем-то, это было бы здорово. Благодарю вас!

4 ответа

Добавить <receiver> в вашем манифесте, который слушает ACTION_HEADSET_PLUG трансляция. Документация показывает Intent дополнительные функции, которые вы можете использовать, чтобы узнать, подключена ли гарнитура (state), так далее.

Я думаю, что ваш вопрос может иметь несколько дубликатов:

  1. Проверьте, подключены ли наушники
  2. Android: проверка подключения наушников

Похоже, что вам нужен устаревший метод на уровне API 14. В документации говорится, что его следует использовать только для проверки того, подключена ли к нему гарнитура или нет. Так что для ваших целей это подойдет. Однако, чтобы проверить, воспроизводится ли звук через него, вам может потребоваться другое решение.

Из вашего комментария похоже, что вы хотите знать, как на самом деле использовать его. Функция возвращает true или false, чтобы поместить ее в оператор if в качестве аргумента, и вы будете установлены.

Я нашел решение.

AudioManager audio=(AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
        if(audio.isWiredHeadsetOn()){
             Toast.makeText(this,"Headset is Connected",Toast.LENGTH_SHORT).show();
        }else{
             Toast.makeText(this,"Headset is Not Connected",Toast.LENGTH_SHORT).show();
        }

Спасибо, парни!

Я бы установил BroadcastReceiver чтобы получить android.intent.action.HEADSET_PLUG намерение http://developer.android.com/reference/android/content/Intent.html

Другие вопросы по тегам