I am currently working with a MicroChip BLE module that I have no control over. It seems that the engineers behind this device set up a peripheral that is advertising characteristics, but no service (Is this even possible?)
My question is: Is there any general way to access/modify these characteristics without first attempting to discover the GATT service they belong to? I know that the characteristics exist because an iOS app I have been can identify them:
but when I "interrogate" the peripheral, I see plenty of information, including these characteristics:
Finally, I tried using some Google Store BLE Scanners in addition to the BluetoothLeGatt sample on my Nexus 5, and all of them can correctly identify that this peripheral exists. However, inside the sample the following piece of code:
mBluetoothGatt = device.connectGatt(this, false, mGattCallback);
produces the following monitor output:
12-01 21:01:03.888 32494-32516/com.example.android.bluetoothlegatt D/BluetoothGatt: onClientConnectionState() - status=133 clientIf=6 device=D8:80:39:F0:0C:9C
and the device is never connected to. If I could just access the characteristics without the service, I believe I could get my code to function.