当前位置: 首页 > 知识库问答 >
问题:

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

贺卜霸
2023-03-14

我使用下面添加的代码来获取android设备的连接音频设备。使用AudioManager api方法getDevices()并获得了耳机、扬声器、耳机等连接设备的结果。但此getDevices()方法仅适用于android api级别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);
}

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

共有1个答案

丁经国
2023-03-14

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

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

如果您在向 AndroidManifest 添加MODIFY_AUDIO_SETTINGS权限时总是出错.xml

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

检查后,您可以通过向方法传递< code>true或< code>false来设置设备的开启或关闭:

    < Li > < code > setWiredHeadsetOn()-在API级别5中添加,在API级别5中已弃用 < Li > < code > setSpeakerphoneOn()-在API级别1中添加 < Li > < code > setBluetoothScoOn()-在API级别1中添加 < Li > < code > setbluetooth a2 dpon()-在API级别3中添加,在API级别5中弃用
 类似资料:
  • 我是低功耗蓝牙 (LE) API 的新手。有没有办法检查Android设备当前是否连接到任何蓝牙LE设备,并可能获得这些设备的列表? BT-LE设备真的“连接”了吗?我注意到当我的智能手表与我的Nexus 5配对/连接时,状态栏(在KitKat上)中的蓝牙图标不会像连接到经典蓝牙设备时那样变成白色/粗体。 我在经典设备上使用了下面的代码。看起来我可以用相同的方式检查GATT和GATT_SERVER

  • 我们可以从adb shell获取连接到android设备的设备列表吗?

  • 我可以通过调用来获取内部存储,它返回内部存储的路径。 这方面的任何帮助都将非常感谢,因为没有一个标准的AFAIK可以用来检索所有连接的存储设备的列表。 还有,很多解决方案在不同的设备和Android版本上不起作用。

  • 通常,编写基于WinPcap应用程序的第一件事情,就是获得已连接的网络适配器列表。libpcap和WinPcap都提供了 pcap_findalldevs_ex() 函数来实现这个功能: 这个函数返回一个 pcap_if 结构的链表, 每个这样的结构都包含了一个适配器的详细信息。值得注意的是,数据域 name 和 description 表示一个适配器名称和一个可以让人们理解的描述。 下列代码能获

  • 我想检索连接到智能手机WiFi热点的所有设备的IP地址。在Android 10及以下版本中,我能够通过执行以下代码获得此列表: 然而,在Android 11中,IP命令似乎不再有效(https://developer.android.com/training/articles/user-data-ids#mac-11岁以上) 在Android11中,有没有其他方法可以获取已连接客户端的IP地址?

  • 我的audio player应用程序当前正在侦听“ACTION\u ACL\u DISCONNECTED”事件,检查BluetoothDevice的意图。EXTRA_DEVICE,并检查该设备的类以查看它是否是BluetoothClass。装置专业AUDIO\u VIDEO设备。如果是这样,那么我想暂停播放。基本上,当蓝牙耳机或汽车连接断开时暂停。 然而,我发现这对一些实际上以其他方式收听的用户来