Используемое устройство: Galaxy S9, Android 8.0.
Соединение работает нормально, но onCharacteristicChangedMethod
моего обратного вызова никогда не вызывается. Однако я зарегистрировался для уведомлений, используя setCharacteristicNotification(char, true)
. Характеристика Код уведомления:
mBluetoothGatt.setCharacteristicNotification(characteristic, true);
BluetoothGattDescriptor descriptor = characteristic.getDescriptor(UUID.fromString(SampleGattAttributes.CLIENT_CHARACTERISTIC_CONFIG));
descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
mBluetoothGatt.writeDescriptor(descriptor);
Характеристика Конфиг. UUID составляет 00002902-0000-1000-8000-00805f9b34fb
.
Разрешения добавлены в манифест Android:
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
Я прочитал, что мне нужно явно объявить broadcastReceiver и наблюдать в журнале следующее сообщение:
W/BroadcastQueue: Background execution not allowed: receiving Intent
В этом ли проблема, и если да, то как бы я явно объявил этот получатель?