android


BLE notification subscription gets 133


1 Android phone (N5X 6.0.1) is running a BLE server, another one (N5X O) is subscribing.
Notification for a characteristic can be enabled however, on the write descriptor part, I'm consistently getting a 133.
Server.java
bluetoothGattServer = bluetoothManager.openGattServer(this, serverCallback);
BluetoothGattService service = new BluetoothGattService(Constants.SERVICE,
BluetoothGattService.SERVICE_TYPE_PRIMARY);
characteristic =
new BluetoothGattCharacteristic(Constants.CHARACTERISTIC,
BluetoothGattCharacteristic.PROPERTY_NOTIFY,
BluetoothGattCharacteristic.PERMISSION_READ | BluetoothGattCharacteristic.PERMISSION_WRITE);
// public static UUID DESCRIPTOR = UUID.fromString("00002902-0000-1000-8000-00805f9b34fb");
characteristic.addDescriptor(new BluetoothGattDescriptor(Constants.DESCRIPTOR,
BluetoothGattCharacteristic.PERMISSION_READ | BluetoothGattDescriptor.PERMISSION_WRITE));
characteristic.setWriteType(BluetoothGattCharacteristic.WRITE_TYPE_DEFAULT);
service.addCharacteristic(characteristic);
bluetoothGattServer.addService(service);
All the other UUIDs have been created from here.
Client.java
device.establishConnection(false)
.flatMap(bleConnection -> bleConnection.setupNotification(Constants.CHARACTERISTIC))
.flatMap(onNotificationReceived -> onNotificationReceived)
.subscribe(data -> {
Log.d(TAG, "data: " + data);
}, throwable -> {
Log.d(TAG, "data error " + throwable);
});
logcat
05-15 15:26:50.097 D/BluetoothGatt: setCharacteristicNotification() - uuid: 8d7dda32-3759-11e7-a919-92ebcb67fe33 enable: true
05-15 15:26:50.105 D/RxBle#Radio: QUEUED RxBleRadioOperationDescriptorWrite(60042487)
05-15 15:26:50.110 D/RxBle#Radio: FINISHED RxBleRadioOperationServicesDiscover(231218312)
05-15 15:26:50.112 D/RxBle#Radio: STARTED RxBleRadioOperationDescriptorWrite(60042487)
05-15 15:27:20.119 D/RxBle#Radio: FINISHED RxBleRadioOperationDescriptorWrite(60042487)
05-15 15:27:20.121 D/BluetoothGatt: setCharacteristicNotification() - uuid: 8d7dda32-3759-11e7-a919-92ebcb67fe33 enable: false
05-15 15:27:20.126 D/RxBle#BluetoothGatt: onDescriptorWrite descriptor=00002902-0000-1000-8000-00805f9b34fb status=133
05-15 15:27:20.129 D/BLE: data error BleGattDescriptorException{macAddress=42:EE:5A:C6:C1:F0, status=133 (0x85 -> https://android.googlesource.com/platform/external/bluetooth/bluedroid/+/android-5.1.0_r1/stack/include/gatt_api.h), bleGattOperationType=BleGattOperation{description='DESCRIPTOR_WRITE'}}
Note: if I'm using the native Android API, I'm able to subscribe and receive notifications without having to write into the descriptor.
Bluetooth Core Specification says that if a characteristic supports notifications it should contain a Client Characteristic Config descriptor and start notifying only when CCC descriptor will be written with a proper value.
It seems that in your configuration there is a problem which manifests as status = 133. It seems that you may have made a mistake when setting properties on the characteristic. I assume that you want to have a characteristic that you can read, write and set notifications - in this situation it would look like:
characteristic =
new BluetoothGattCharacteristic(Constants.CHARACTERISTIC,
BluetoothGattCharacteristic.PROPERTY_READ, BluetoothGattCharacteristic.PROPERTY_WRITE, BluetoothGattCharacteristic.PROPERTY_NOTIFY,
BluetoothGattCharacteristic.PERMISSION_READ | BluetoothGattCharacteristic.PERMISSION_WRITE);
Potential workaround
Some chinese manufacturers are not conforming to the Bluetooth Core Specification and they do not have CCC descriptor. If you are able to get the notifications without setting CCC then you could use a compatibility mode RxBleConnection.setupNotifications(characteristic, NotificationSetupMode.COMPAT) although it is discouraged and a proper fix to the configuration should be aplied.

Related Links

getActionBar returns null from SettingsActivity
How to call Android Activity on Click of Slider Menu Item
How to add Alertdialog and link to the button on activity?
Difference between onMeasure, onLayout, OnGlobalLayoutListener
Swipe run by Activity Do OnBackPress
Choose any (#00000000 - #FFFFFFFF) widget background color in configuration activity
Why my Android App doesn't have ActionBar?
Redirecting to a blank page using a click event
How to determinate who is in the end of a line
What is the work around for TYPE_KEYGUARD now that it's been removed?
Pick image from fragment always return resultcode 0 in some devices
HTML Embeded Video Background can't load on Android or IOS
A simple if statement not working
Unable to add multiple markers in a Google Map
Android M Camera Intent + permission bug?
How can I disable a thread with an onClickListener?

Categories

HOME
codenvy
datastore
numbers
hessian
fftw
socket.io
sublimetext
r-googlesheets
static-site
alsa
hpc
nuget-package
elasticsearch-5
spin
little-proxy
octave
cmdb
stellar.js
endpoint
bitnami
parameter-passing
http-post
linear-algebra
mathprog
template-engine
jersey-1.0
git-extensions
foreign-keys
sse
solrcloud
kendo-mobile
undertow
rubymotion
scriptella
siri
google-cloud-print
pylons
comparable
mobx
recurring-events
paragraph
left-join
database-comparison
hibernate-validator
processwire
lubridate
sql-server-ce
ods
health-monitoring
linq-to-objects
mcustomscrollbar
trigonometry
vmware-fusion
android-softkeyboard
avcapturedevice
xmldocument
chai-as-promised
facebook-pixel
vugen
identification
convex-optimization
singleinstance
context-sensitive-grammar
arules
seek
eigenvector
riot
html-to-pdf
grass
np-spring
jbase
file-move
baasbox
snackbar
document-repository
mruby
ghcjs
with-statement
kissfft
lnk
artemis
jammer
rolify
alice
objectquery
jquery-address
relative
tournament
drawtobitmap
multiplatform
mbeans
msr
socketserver
cloudfiles
diagrams
uideviceorientation
instantiationexception
rowlex
qtabbar
lobo-cobra
todos
flvplayback

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App