获取连接音频设备列表的android api是什么?

时间:2016-01-22 11:10:56

标签: android android-5.0-lollipop android-audiomanager android-api-levels android-hardware

我使用下面添加的代码来获取Android设备的连接音频设备。使用AudioManager api方法getDevices(),并通过耳机,扬声器,耳机等连接设备获得结果。但是这个getDevices()方法仅在android api level 23(Marshmallow)之后可用。

但是我的应用程序应该支持来自api level 21(Lollipop)。请任何人让我知道替代api以获得Android设备的可用音频设备。

与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);
}

请帮助我为Marshmallow(api level 23)下的Android OS版本运行的设备提供连接的音频设备。

1 个答案:

答案 0 :(得分:1)

似乎在API级别23之前还没有这样的API,但是人们可以使用布尔方法来检查是否有某些音频设备:

  • isWiredHeadsetOn()-在API级别5中添加,在API级别14中已弃用
  • isSpeakerphoneOn()-已添加到API级别1
  • isBluetoothScoOn()-已添加到API级别1
  • isBluetoothA2dpOn()-在API级别3中添加,在API级别26中已弃用

如果向AndroidManifest.xml添加 MODIFY_AUDIO_SETTINGS 权限时总是出错,则为

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 

检查后,您可以通过将truefalse传递给方法来将设备设置为打开关闭

  • setWiredHeadsetOn()-在API级别5中添加,在API级别5中已弃用
  • setSpeakerphoneOn()-已添加到API级别1
  • setBluetoothScoOn()-已添加到API级别1
  • setBluetoothA2dpOn()-在API级别3中添加,在API级别5中已弃用