主机连接从机后,如何获取从机的设备名(DEVICE NAME)?

主机连接从机后,如何获取从机的设备名(DEVICE NAME)?

获取从机设备名称,需要相应的句柄,目前我是用句柄0x16来获取设备名,确实能获取到对应的设备名称,但我不确定是不是固定的句柄?还是说需要先获取句柄?

#define DEVICE_NAME_HANDLE 0x16


      attReadReq_t req;

       req.handle = DEVICE_NAME_HANDLE;

       if(GATT_ReadCharValue(centralConnHandle, &req, centralTaskId) == SUCCESS)


上电的时候获取名称可以参考如下:

2.png

通过蓝牙建立连接后获取Device Name,可以通过手机建立连接,然后抓包工具获取,测试抓取Peripheral的handle值如下:

4.png



谢谢。

这样看来,获取DEVICE NAME信息的句柄就是不固定的,这就有点麻烦,主机需要连接好几种从机设备。有没有合适的办法获取到对应的句柄?



这个服务的uuid应该是一样的,都是0x1800,然后名字对应的通道uuid是0x2a00,可以根据这个来获取handle,不过需要注意的是,这个不是必须包含的信息,有些从机可能是没有的,并且一般设置这个名字都是和广播包名字保持一致的。


只有登录才能回复,可以选择微信账号登录