У меня есть служба, которая подключается к устройству глюкозы Bluetooth напрямую через MAC-адрес.Android Bluetooth BLE onDescriptorWrite GATT_INSUFFICIENT_AUTHENTICATION
if (mBluetoothGatt != null) {
if (mBluetoothGatt.connect()) {
return true;
}
else {
return false;
}
}
mBluetoothGatt = device.connectGatt(this, false, mGattCallback);
Процедура спаривания и загрузки данных из работы устройства совершенных в первый раз после спаривания, но если я пытаюсь повторно подключиться к устройству и регистрация уведомлений я получаю ошибку GATT_INSUFFICIENT_AUTHENTICATION в моей BluetoothGatt.onDescriptorWrite метод.
@Override
public void onDescriptorWrite (BluetoothGatt gatt, BluetoothGattDescriptor descriptor, int status) {
...
if (status == BluetoothGatt.GATT_INSUFFICIENT_AUTHENTICATION) {
...
Затем система предложит пользователю ввести пин-код и просит их повторной аутентификации с устройством, даже несмотря на то скреплением показывает, как Bonded.
Я прочитал довольно много сообщений StackOverflow о BLE, и некоторые из них противоречат друг другу или не затрагивают вопрос о подключении напрямую.
- Если мы пытаемся подключиться к ранее подключенному устройству, используем ли мы автосоединение или нет?
- Нужно ли повторно включать уведомления для устройства при каждом подключении к нему? Или только первый раз, когда мы подключаемся ?
Устройство, которое я использую, является Moto G с KitKat 4.4.