#android #bluetooth #android-bluetooth #bluetoothadapter #bluetoothheadset
#Android #bluetooth #android-bluetooth #адаптер bluetooth #bluetoothheadset
Вопрос:
Если мы посмотрим на это, там говорится :
Android одновременно поддерживает только одну подключенную Bluetooth-гарнитуру.
Также объяснение getConnectedDevices()
:
Возвращает набор устройств, которые находятся в состоянии
STATE_CONNECTED
Возвращаемый тип метода — List<BluetoothDevice>
, и в моем случае он возвращает более одного. Один для Galaxy Watch, один для Galaxy Buds.
Я знаю, как определить, какой из них активен в данный момент. Тот, который используется в данный момент, вернет true при BluetoothHeadset.isAudioConnected()
вызове. Итак, я не спрашиваю, как найти активное устройство Bluetooth-гарнитуры здесь. Я скорее пытаюсь понять, что STATE_CONNECTED
на самом деле означает.
Я думаю, что это также полезно для других, потому что есть много ответов, подобных следующему, которые в некоторых случаях не будут работать должным образом :
public static boolean isConnected() {
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
return bluetoothAdapter != null
amp;amp; bluetoothAdapter.isEnabled()
amp;amp; bluetoothAdapter.getProfileConnectionState(BluetoothProfile.HEADSET) == BluetoothProfile.STATE_CONNECTED;
}
Это неправильный вариант, если вы просто хотите проверить, разговаривает ли ваш пользователь по телефону.
Это потому, что Bluetooth-гарнитура пользователя станет STATE_CONNECTED
сразу после включения Bluetooth-гарнитуры и синхронизации со смартфоном.
Итак, что STATE_CONNECTED
именно?
Ответ №1:
Согласно документации, bluetoothAdapter.getProfileConnectionState(BluetoothProfile.HEADSET)
возвращает текущее состояние подключения BluetoothProfile.HEADSET
профиля.
Этот вызов возвращается BluetoothProfile.STATE_CONNECTED
, если адаптер Bluetooth телефона в данный момент подключен к устройству с профилем гарнитуры.
Это не означает, что пользователь в данный момент использует гарнитуру для разговора. Это означает, что гарнитура готова поддерживать связь с телефоном.