手机测试血压蓝牙连接不上

公司项目要连接第三方公司的血壓计由于从来没有做过和蓝牙有关的项目,好奇的心驱使下下也想顺便了解一下这方面的知识于是主动向领导请求开发这个功能,经過4天的折腾终于弄好了,(为什么要4天呢TMD第三天才搞明白原来不是我代码不行,是他们给错文档了MDZZ,强忍住骂娘的冲动。

下面主要说一下过程中遇到的坑:

连接好设备后,搜索CBService时候的UUID开始做之前最好知道哪个服务的UUID是你需要的,这个第三方设备合作方或者蓝牙設备文档上面会告诉你如果不知道服务的UUID,需要自己一个个试的话那就要注意啦,因为设备上面有很多服务可能有多个服务都具备讀写属性甚至都支持通知,在这一步找到正确的UUID是十分关键的如果这一步错了,后面肯定错。

## 2、查看特征支持

找到服务之后要查看該服务下面的特征都支持什么属性,有了特征支持就可以针对每个特征进行相应的操作。

提供一个打印特征支持的方法:

## 3、发送数据無响应

回调的值都是空,这种情况的一个原因是:有些设备需要**先建立连接**才能执行后续操作,这个链接不是之前的已经链接好的蓝牙是**需要向外设发送一个连接指令**,就比如我这次做的血压计开发直接发送开始测量指令是不好使的,必须得先发送链接指令等血压計响应之后,再发开始测量指令。

一般情况下,我们发送的指令都是从字符串开始的想发送给蓝牙,必须是NSData型但好像转化的时候鈈是常见的转换方法,

附上发送的指令转换方法:

## 4、处理蓝牙接收的信息

一般收到的信息都是十六进制的数值具体代表什么意思,蓝牙開发文档已经都写好了如果没有文档的话,我也不知道怎么办了

十六进制转为十进制的方法:

// 为空,直接返回.

//将整数转换为NSNumber,存储到数组中,並返回.

我要回帖

 

随机推荐