BLUETOOTH_CONNECT现在,当针对 Android 12 或更高版本时,需要在运行时检查权限(请参阅此处)。
我的应用程序仅使用蓝牙连接到当前连接的耳机(在 WebRTC 电话会议期间将音频重定向到蓝牙耳机)。因此,如果用户不使用任何蓝牙耳机,我不需要请求许可。
我知道如何请求权限,但问题是要检查耳机是否已连接,我首先需要请求权限。但如果没有连接耳机,我不想请求许可。
据我了解,如果我按照建议请求许可,那么所有用户都会被要求获得许可,即使他们在我的游戏中不使用蓝牙耳机。这是向用户请求的不必要的许可,他们不会为此感谢我们。
但如果不先检查许可,就不可能检查耳机的状态(连接或未连接)。如何解决第22条军规?
这是我检查蓝牙耳机是否已连接的代码:
private static boolean isBluetoothHeadsetConnected() {
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
return mBluetoothAdapter != null && mBluetoothAdapter.isEnabled()
&& mBluetoothAdapter.getProfileConnectionState(BluetoothHeadset.HEADSET) == BluetoothHeadset.STATE_CONNECTED;
}
Run Code Online (Sandbox Code Playgroud)
您可以使用AudioManager类来检查设备当前的音频输出。
您可以调用getDevices()方法并接收AudioDeviceInfo对象的数组。
这样AudioDeviceInfo您将获得有关所连接设备的所有信息。
| 归档时间: |
|
| 查看次数: |
1083 次 |
| 最近记录: |