我使用下面添加的代码来获取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版本运行的设备提供连接的音频设备。
答案 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" />
检查后,您可以通过将true
或false
传递给方法来将设备设置为打开或关闭:
setWiredHeadsetOn()
-在API级别5中添加,在API级别5中已弃用setSpeakerphoneOn()
-已添加到API级别1 setBluetoothScoOn()
-已添加到API级别1 setBluetoothA2dpOn()
-在API级别3中添加,在API级别5中已弃用