其他分享
首页 > 其他分享> > 获取连接音频设备列表的android api是什么?

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

作者:互联网

我使用下面添加的代码来获取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权限时总是出错

<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中已弃用

标签:android-audiomanager,android-hardware,android,android-5-0-lollipop,android-api-l
来源: https://codeday.me/bug/20191005/1856480.html