现在,当针对 Android 12 或更高版本时,需要在运行时检查
我的应用程序只使用蓝牙连接当前连接的耳机(在 WebRTC 电话会议期间将音频重定向到蓝牙耳机)。因此,如果用户不使用任何蓝牙耳机,我不需要请求权限。 我知道如何请求权限,但问题是要检查耳机是否已连接,我首先需要请求权限。但如果没有连接耳机,我就不想请求权限。
据我所知,如果按照建议请求权限,那么即使用户不在我的游戏中使用蓝牙耳机,所有用户也会被要求赋予权限。这是一个不必要的权限请求,用户不会感谢我们。
但是,如果不先检查权限,则无法检查耳机的状态(已连接还是未连接)。如何解决这个困境?
这是我的代码,用于检查蓝牙耳机是否已连接:
BLUETOOTH_CONNECT
权限(请参见此处)。我的应用程序只使用蓝牙连接当前连接的耳机(在 WebRTC 电话会议期间将音频重定向到蓝牙耳机)。因此,如果用户不使用任何蓝牙耳机,我不需要请求权限。 我知道如何请求权限,但问题是要检查耳机是否已连接,我首先需要请求权限。但如果没有连接耳机,我就不想请求权限。
据我所知,如果按照建议请求权限,那么即使用户不在我的游戏中使用蓝牙耳机,所有用户也会被要求赋予权限。这是一个不必要的权限请求,用户不会感谢我们。
但是,如果不先检查权限,则无法检查耳机的状态(已连接还是未连接)。如何解决这个困境?
这是我的代码,用于检查蓝牙耳机是否已连接:
private static boolean isBluetoothHeadsetConnected() {
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
return mBluetoothAdapter != null && mBluetoothAdapter.isEnabled()
&& mBluetoothAdapter.getProfileConnectionState(BluetoothHeadset.HEADSET) == BluetoothHeadset.STATE_CONNECTED;
}