PC端使用Microsoft Bluetooth api连接android BLE Gatt server需要先进行匹配

编者:李国帅

qq:9611153 微信lgs9611153

时间:2020/01/03

背景原因:

生活中,我们会接触到很多的蓝牙应用,比如蓝牙音响,鼠标,共享单车,便携式医疗检测设备等。通常使用android设备或者ios开发蓝牙还是比较方便的,毕竟蓝牙本身就是为了移动应用而产生的。

         那么就会想,在windows上能不能去连接那些蓝牙设备呢?现在在windows上连接蓝牙还是有不少方法的,我就尝试了一下。

所需资源:

Android,windows,蓝牙USB

问题相关:

在android上使用开源库https://github.com/vir56k/bluetoothDemo中的服务器部分创建一个Gatt服务。

         在pc上调用Microsoft Bluetooth api去连接Gatt服务,然后写入特征值,在android展示出来。

         其中就遇到了一个问题,就是题目上说的,PC端使用Microsoft Bluetooth api连接android BLE Gatt server需要先进行匹配。

         首先,因为使用BluetoothFindFirstDevice根本就找不到Gatt server,谈不上调用接口匹配。

         而且,调用SetupDiGetClassDevs方法也获取不到Gatt server的句柄,因为Gatt server找不到。

         于是一通乱找,找到了2016年的解答,觉得即便是到现在,windows的这个问题依然是没有解决的,使用起来也没有android方便。

 

问题解决:

实际上,只有在PC上匹配了Gatt Server,就调用SetupDiGetClassDevs方法获取设备句柄,进而调用Microsoft Bluetooth api一路找到特征值进行设置。

 

 

 

配置好了之后就可以调用BluetoothGATTSetCharacteristicValueandroidGattServer进行通信了,通过设置和获取特征值,实现相互之间的通信。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微澜-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值