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

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

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

Ответ 1

Похоже, вас будет интересовать метод isWiredHeadsetOn() и isBluetoothA2dpOn() в AudioManager class.

Однако метод isWiredHeadsetOn() доступен только в Android 2.0 или новее. (Метод isBluetoothA2dpOn() доступен с Android 1.5.)

Ответ 2

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

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()+"");

Ответ 3

Кажется, что эта работа выполняется, по крайней мере, на 1,6; не уверен, поддерживается ли он в более поздних версиях (a является экземпляром AudioManager)

boolean headphones = (a.getRouting(a.getMode()) & AudioManager.ROUTE_HEADSET) == AudioManager.ROUTE_HEADSET;