I used the below added code to get the connected audio devices for android device. Used AudioManager api method getDevices()
and got the result with connected devices like earphones, speaker, headphones. But this getDevices()
method is available since android api level 23 (Marshmallow) only.
But my application should support from api level 21 (Lollipop). Please can anybody let me know the alternative api to get the available audio device for the android device.
Code used with api level 23.
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
AudioDeviceInfo[] adi = audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS);
}
Please help me by providing a way to get the connected audio devices for the devices running with Android OS version below Marshmallow(api level 23).
It seems there was no such API before API level 23, but one could use boolean methods to check, if some audio device was on:
isWiredHeadsetOn()
- added in API level 5, deprecated in API level 14isSpeakerphoneOn()
- added in API level 1isBluetoothScoOn()
- added in API level 1isBluetoothA2dpOn()
- added in API level 3, deprecated in API level 26
If you always get false when add MODIFY_AUDIO_SETTINGS permission to AndroidManifest.xml
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
After the check you may set the devices on or off by passing true
or false
to methods:
setWiredHeadsetOn()
- added in API level 5, deprecated in API level 5setSpeakerphoneOn()
- added in API level 1setBluetoothScoOn()
- added in API level 1setBluetoothA2dpOn()
- added in API level 3, deprecated in API level 5
来源:https://stackoverflow.com/questions/34945313/what-is-the-android-api-for-getting-the-list-of-connected-audio-devices