Not shown registered gatt services on an android 5.1.1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dears,

I am testing a gatt server with iphone and android.
iPhone is working nicely, but unfortunately andorid cannot retrive
registered GATT services.
I tested with a bluez-5.39/test/example-gatt-server file.
Can you advice me?

My step is below:

* Peripheral env
** Bluez 5.39
** Linux Kernel 3.18
** BT Dongle: NEXT-204BT(CSR 4.0)

* Central env
** Android 5.1.1 and iOS 9.3.1
** Test app: nRF MCP

* Build configure
./configure --prefix=/usr     \
            --sysconfdir=/etc    \
            --localstatedir=/var \
            --enable-library      \
            --enable-experimental \
            --disable-systemd

* STEP
1. Executes a bluetooth daemon:
$ bluetoothd -ndE

2. Register gatt services
$ python bluez-5.39/test/example-gatt-server
For register service(Heart Rate, Battery Service)

3. To advertising and pairing:
$ hciconfig hci0 reset
$ hciconfig hci0 pscan;   # PSCAN need to pair with android
$ hcitool -i hci0 cmd 0x08 0x000a 00;
$ hcitool -i hci0 cmd 0x08 0x0008 03 02 0a 0a 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00;
$ hcitool -i hci0 cmd 0x08 0x000a 01;

4. connect to gatt server
4.1 with iOS 9.3.1
Retrieved list
- Heart Rate (UUID: 0x180D)
- Battery Service (UUID: 0x180F)

4.2 with android 5.1.1
Retrieved list
- Generic Attribute(UUID: 0x1801)
- Generic Access(UUID: 0x1800)



Only android don't get registerted services.
I founded different part of bluetoothd log in the case of iphone and
android. I hope these are helpful to you.

Logs of iOS case:

bluetoothd[2976]: src/gatt-database.c:connect_cb() New incoming LE ATT
connection
bluetoothd[2976]: attrib/gattrib.c:g_attrib_ref() 0x1e53230: g_attrib_ref=1
bluetoothd[2976]: src/gatt-client.c:btd_gatt_client_connected() Device
connected.
bluetoothd[2976]: src/device.c:load_gatt_db() Restoring
57:92:97:B5:A8:C4 gatt database from file
bluetoothd[2976]: No cache for 57:92:97:B5:A8:C4
bluetoothd[2976]: src/device.c:gatt_debug() MTU exchange complete, with MTU: 158
bluetoothd[2976]: src/device.c:gatt_debug() Read By Grp Type - start:
0x0001 end: 0xffff
bluetoothd[2976]: src/device.c:gatt_debug() Read By Grp Type - start:
0x0021 end: 0xffff
bluetoothd[2976]: src/device.c:gatt_debug() Read By Type - start:
0x0006 end: 0x0009
bluetoothd[2976]: src/device.c:gatt_debug() Find Info - start: 0x0009
end: 0x0009
bluetoothd[2976]: src/device.c:gatt_debug() Write Req - handle: 0x0009
bluetoothd[2976]: src/gatt-database.c:gatt_ccc_write_cb() CCC write
called for handle: 0x0009
bluetoothd[2976]: src/device.c:gatt_debug() Primary services found: 8
bluetoothd[2976]: src/device.c:gatt_debug() start: 0x0001, end:
0x0005, uuid: 00001800-0000-1000-8000-00805f9b34fb
bluetoothd[2976]: src/device.c:gatt_debug() start: 0x0006, end:
0x0009, uuid: 00001801-0000-1000-8000-00805f9b34fb
bluetoothd[2976]: src/device.c:gatt_debug() start: 0x000a, end:
0x000e, uuid: d0611e78-bbb4-4591-a5f8-487910ae4366
bluetoothd[2976]: src/device.c:gatt_debug() start: 0x000f, end:
0x0012, uuid: 0000180f-0000-1000-8000-00805f9b34fb
bluetoothd[2976]: src/device.c:gatt_debug() start: 0x0013, end:
0x0018, uuid: 00001805-0000-1000-8000-00805f9b34fb
bluetoothd[2976]: src/device.c:gatt_debug() start: 0x0019, end:
0x001d, uuid: 0000180a-0000-1000-8000-00805f9b34fb
bluetoothd[2976]: src/device.c:gatt_debug() start: 0x001e, end:
0x0027, uuid: 7905f431-b5ce-4e99-a40f-4b1e122d00d0
bluetoothd[2976]: src/device.c:gatt_debug() start: 0x0028, end:
0x0033, uuid: 89d3502b-0f36-433a-8ef4-c502ad55f8dc
bluetoothd[2976]: src/device.c:gatt_debug() Secondary service
discovery failed. ATT ECODE: 0x0a

Logs of android case:

bluetoothd[2976]: src/gatt-database.c:connect_cb() New incoming LE ATT
connection
bluetoothd[2976]: attrib/gattrib.c:g_attrib_ref() 0x1e35fe8: g_attrib_ref=1
bluetoothd[2976]: src/gatt-client.c:btd_gatt_client_connected() Device
connected.
bluetoothd[2976]: src/device.c:load_gatt_db() Restoring
30:75:12:94:47:D5 gatt database from file
bluetoothd[2976]: No cache for 30:75:12:94:47:D5
bluetoothd[2976]: src/device.c:gatt_debug() MTU Exchange failed. ATT ECODE: 0x06
bluetoothd[2976]: src/device.c:gatt_debug() Primary services found: 2
bluetoothd[2976]: src/device.c:gatt_debug() start: 0x0001, end:
0x0005, uuid: 00001801-0000-1000-8000-00805f9b34fb
bluetoothd[2976]: src/device.c:gatt_debug() start: 0x0014, end:
0xffff, uuid: 00001800-0000-1000-8000-00805f9b34fb
bluetoothd[2976]: src/device.c:gatt_debug() Secondary service
discovery failed. ATT ECODE: 0x10


It looks like if request is from an android, cannot find primary services.
How can I use a GATT service with an android?
Pls advise me.

Best Regards,
Tak
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux