У меня есть одна проблема с обнаружением подключенных наушников. Я использую Intent. ACTION_HEADSET_PLUG и работает хорошо. Я запускаю службу и в методе onCreate() регистрирую получателя через registerReceiver(). В большинстве случаев я получаю трансляцию ACTION_HEADSET_PLUG сразу, поэтому я знаю, подключены наушники или нет.
Но иногда (не знаю почему) я не получаю эту трансляцию сразу после регистрации ресивера - поэтому я не знаю текущее состояние наушников. Может быть, я просто могу предположить, что в таком случае они не связаны, но я не уверен, что это 100% правда. Итак, я нашел метод AudioManager#isWiredHeadsetOn(). и я также добавил необходимое разрешение MODIFY_AUDIO_SETTINGS. Проблема в том, что он корректно работает только с гарнитурой (наушники + микрофон), когда просто подключены наушники, он каждый раз возвращает false. Пожалуйста, у вас есть идеи, как это решить? Я разрабатываю для Android 2.1.