Android: BLE Gatt Уведомления не получены - PullRequest
0 голосов
/ 29 октября 2018

Используемое устройство: 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

В этом ли проблема, и если да, то как бы я явно объявил этот получатель?

1 Ответ

0 голосов
/ 30 октября 2018

Закрытие этого вопроса, так как при динамическом объявлении broadcastReceiver не включались уведомления в моем проекте, это решило проблему, касающуюся фонового выполнения (который был исходным запросом).

...