我使用下面添加的代码来获取Android设备的连接音频设备.使用了AudioManager api方法getDevices(),并通过耳机,扬声器,耳机等连接设备获得了结果.但是这个getDevices()方法仅在android api level 23(Marshmallow)之后可用.
但是我的应用程序应该支持api level 21(Lollipop).请任何人都可以告诉我替代api获取Android设备的可用音频设备.
与api级别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版本运行的设备提供连接的音频设备.
解决方法:
似乎在API级别23之前没有这样的API,但是如果某个音频设备打开,可以使用布尔方法来检查:
> isWiredHeadsetOn() – 在API级别5中添加,在API级别14中已弃用
> isSpeakerphoneOn() – 在API级别1中添加
> isBluetoothScoOn() – 在API级别1中添加
> isBluetoothA2dpOn() – 在API级别3中添加,在API级别26中弃用
如果在向AndroidManifest.xml添加MODIFY_AUDIO_SETTINGS权限时总是出错
检查后,您可以通过将true或false传递给方法来打开或关闭设备:
> setWiredHeadsetOn() – 在API级别5中添加,在API级别5中已弃用
> setSpeakerphoneOn() – 在API级别1中添加
> setBluetoothScoOn() – 在API级别1中添加
> setBluetoothA2dpOn() – 在API级别3中添加,在API级别5中已弃用