Android: проверка подключения наушников

Как я могу проверить, подключены ли наушники в настоящее время. Я не хочу вещательный приемник, который сообщает мне, когда они были подключены к устройству. Мне нужно что-то вроде:

if(/*headphone is connected*/)
 ...

3 ответа

Решение

Похоже, вы будете заинтересованы в isWiredHeadsetOn() метод и isBluetoothA2dpOn() метод AudioManager класс

Тем не менее isWiredHeadsetOn() метод доступен только в Android 2.0 или более поздней версии. (The isBluetoothA2dpOn() метод доступен с Android 1.5.)

Используйте этот фрагмент кода

AudioManager am1 = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
Log.i("am1.isWiredHeadsetOn()", am1.isWiredHeadsetOn()+"");
Log.i("am1.isMusicActive()", am1.isMusicActive()+"");
Log.i("am1.isSpeakerphoneOn()", am1.isSpeakerphoneOn()+"");

Это, кажется, делает работу по крайней мере на 1.6; не уверен, поддерживается ли он в более поздних версиях (это экземпляр AudioManager)

boolean headphones = (a.getRouting(a.getMode()) & AudioManager.ROUTE_HEADSET) == AudioManager.ROUTE_HEADSET;
Другие вопросы по тегам