gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 23:36:10 28 4
gpt4 key购买 nike

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

但我的应用程序应该支持 api 级别 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);
}

请帮助我提供一种方法,为运行 Android OS 版本低于 Marshmallow(api 级别 23)的设备获取连接的音频设备。

最佳答案

在 API 级别 23 之前似乎没有这样的 API,但可以使用 bool 方法来检查是否有某个音频设备处于开启状态:

  • isWiredHeadsetOn() - 在 API 级别 5 中添加,在 API 级别 15 中已弃用
  • 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 传递给方法来设置设备 onoff:

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

关于android - 获取已连接音频设备列表的 android api 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34945313/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com