STATE_CONNECTED 不代表真的连接了吗?
STATE_CONNECTED doesn't mean it's really CONNECTED?
如果我们看一下 this,它说:
Android only supports one connected Bluetooth Headset at a
time.
还有getConnectedDevices()
的解释:
Return the set of devices which are in state STATE_CONNECTED
方法的return类型是List<BluetoothDevice>
,在我的例子中return不止一种。
一款用于 Galaxy Watch,一款用于 Galaxy Buds。
我知道如何判断当前哪个处于活动状态。
当调用 BluetoothHeadset.isAudioConnected()
时,当前正在使用的将 return 为真。
所以我这里不是问如何找到活动的蓝牙耳机设备。
我更想了解 STATE_CONNECTED
的真正含义。
我认为这对其他人也很有用,因为有很多答案如下所示,在某些情况下不会按预期工作:
public static boolean isConnected() {
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
return bluetoothAdapter != null
&& bluetoothAdapter.isEnabled()
&& bluetoothAdapter.getProfileConnectionState(BluetoothProfile.HEADSET) == BluetoothProfile.STATE_CONNECTED;
}
如果您只是想检查您的用户是否在 phone 上通话,那么这不是合适的方法。
这是因为用户的蓝牙耳机在蓝牙耳机开机并与智能phone同步后会立即变成STATE_CONNECTED
。
那么,STATE_CONNECTED
到底是什么?
根据文档,bluetoothAdapter.getProfileConnectionState(BluetoothProfile.HEADSET)
returns BluetoothProfile.HEADSET
配置文件的当前连接状态。
如果 phone 的蓝牙适配器当前已连接到具有耳机配置文件的设备,则此调用 returns BluetoothProfile.STATE_CONNECTED
。
这并不意味着用户当前正在使用耳机通话。这意味着耳机已准备好处理与 phone.
的通信
如果我们看一下 this,它说:
Android only supports one connected Bluetooth Headset at a time.
还有getConnectedDevices()
的解释:
Return the set of devices which are in state
STATE_CONNECTED
方法的return类型是List<BluetoothDevice>
,在我的例子中return不止一种。
一款用于 Galaxy Watch,一款用于 Galaxy Buds。
我知道如何判断当前哪个处于活动状态。
当调用 BluetoothHeadset.isAudioConnected()
时,当前正在使用的将 return 为真。
所以我这里不是问如何找到活动的蓝牙耳机设备。
我更想了解 STATE_CONNECTED
的真正含义。
我认为这对其他人也很有用,因为有很多答案如下所示,在某些情况下不会按预期工作:
public static boolean isConnected() {
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
return bluetoothAdapter != null
&& bluetoothAdapter.isEnabled()
&& bluetoothAdapter.getProfileConnectionState(BluetoothProfile.HEADSET) == BluetoothProfile.STATE_CONNECTED;
}
如果您只是想检查您的用户是否在 phone 上通话,那么这不是合适的方法。
这是因为用户的蓝牙耳机在蓝牙耳机开机并与智能phone同步后会立即变成STATE_CONNECTED
。
那么,STATE_CONNECTED
到底是什么?
根据文档,bluetoothAdapter.getProfileConnectionState(BluetoothProfile.HEADSET)
returns BluetoothProfile.HEADSET
配置文件的当前连接状态。
如果 phone 的蓝牙适配器当前已连接到具有耳机配置文件的设备,则此调用 returns BluetoothProfile.STATE_CONNECTED
。
这并不意味着用户当前正在使用耳机通话。这意味着耳机已准备好处理与 phone.
的通信