背景:
生活中,我们会接触到很多的蓝牙应用,比如蓝牙音响,鼠标,共享单车,便携式医疗检测设备等。通常使用android设备或者ios开发蓝牙还是比较方便的,毕竟蓝牙本身就是为了移动应用而产生的。
那么就会想,在windows上能不能去连接那些蓝牙设备呢?现在在windows上连接蓝牙还是有不少方法的,我就尝试了一下。
蓝牙连接的流程图
android端app创建gattserver的流程,包含添加特征值,描述符,通知。已经读写特征值,通知消息
android端app查询gettserver服务并与之进行通信的流程
Pc端查询,添加,连接远程蓝牙的流程
Pc端app创建gattserver的流程
Pc端app查询gettserver服务并与之进行通信的流程
过程
android创建gatt服务器,初始化等待连接。
pc端在显示蓝牙设备--添加蓝牙或其他设备--蓝牙--找到相关服务(比如android蓝牙名称),然后点击连接,android手机端显示并匹配,pc端显示并匹配。
双方匹配成功之后,在pc端的设备列表中显示(环形标志)已经连接的蓝牙服务。
在pc端蓝牙客户端拦截gatt服务并且操作特征值和描述符。
问题:
使用微软bluetoothapi查询出所有的gatt服务。从现在看来,还不能找到在android中创建的gatt服务。只能在window ui中手动添加gatt服务。才能进行匹配链接。
Gatt测试也麻烦,每次android创建Gatt,地址都会变一次,windows需要重新连接新地址
windows的sdk越来越大,使用起来也有些麻烦。
总结:
这个过程比较麻烦,也遇到了很多问题,有些问题还不要解决,既然用不上,记录一下也就算了。