What is the android api for getting the list of connected audio devices?

倾然丶 夕夏残阳落幕 提交于 2019-11-29 16:53:00

问题


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).


回答1:


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 14
  • isSpeakerphoneOn() - added in API level 1
  • isBluetoothScoOn() - added in API level 1
  • isBluetoothA2dpOn() - 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 5
  • setSpeakerphoneOn() - added in API level 1
  • setBluetoothScoOn() - added in API level 1
  • setBluetoothA2dpOn() - 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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!