蓝牙接入应该在任何情况下都能够满足Resovable Private Address。因为私隐方面的考虑,苹果设备将会使用蓝牙4.0标准中定义的随机设备地址。
蓝牙接入不需要请求特殊的授权,如配对、认证或加密等来发现服务和特性。只有在获取特性值或者描述值的时候可能会需要特殊的授权。9
蓝牙接入不应该请求配对。如果处于安全考虑,接入点需要与Central建立绑定关系,可以使用Insufficient Authentication错误码在必要的时候拒绝ATT请求。因此苹果设备可能会需要按照既定的安流程程来执行过程。配对可能会需要基于苹果产品的用户认证。蓝牙 协议栈 开发
通用接入描述服务:蓝牙接入应该实现按照蓝牙标准4.0中的Device Name特性
通用属性描述服务:只有当接入有能力在生命周期内更改他的服务的时候,该接入点才需要实现Service Changed特性。苹果产品可以使用Service Changed服务特性来决定它是否可以使用之前读取的或者缓存的来自设备的信息。
设备信息服务:蓝牙接入应该实现设备信息服务。服务的UUID不应该包含在广告数据当中。如下的特性需要被支持:Manufacturer Name String;Model Number String;Firmware Revision String;Software Revision String
4,IOS APP开发 的蓝牙操纵API
手机APP要想获得蓝牙设备的一些额外的信息如电量或者操作蓝牙设备,必须通过IOS API。那么IOS底层必然有某种方式来与蓝牙设备交互。 那么电量通过什么来读写呢?自定义 service characteristic?
任何免提的蓝牙耳机都可以在iOS设备的状态栏中显示一个用来标识他电池电量的图标。这个特性被所有的iOS设备所支持,包括iPhone、iPod和iPad。耳机的蓝牙知识通过两个iOS蓝牙HFP AT命令:HFP Command AT+XAPL
描述:允许通过耳机自定义AT命令
发起者:耳机
格式:AT+XAPL=[vendorID]-[productID]-[version],[features]
参数:
vendorID: 标识生产商的vendor ID的十六进制表示,但是没有0x前缀
productID: 标识生产生的product ID的十六进制表示,但是没有0x前缀
version: 软件的版本
features: 用10进制标识的位标识:
1 = 耳机支持电池电量报告
2 = 耳机暂停或者正在充电
其他值保留
例子: AT+XAPL=ABCD-1234-0100,3
响应: +XAPL=iPhone,[features]
描述:报告耳机的状态变更
发起者:耳机
格式:AT+IPHONEACCEV=[Number of key/value pairs ],[key1 ],[val1 ],[key2 ],[val2 ],...
参数:
Number of key/value pairs : 接下来参数的数量
key: 被报告状态变化的类型
1 = 电量等级
2 = 暂停状态
val: 更改的值
Battery events:0-9之间数字的字符串 A string value between '0' and '9'.
Dock state: 0 = undocked, 1 = docked.
Example: AT+IPHONEACCEV=1,1,3
最后叮嘱:大家有好的的蓝牙通信的资料链接在下面留言分享下~多谢♪(^∇^*)
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-31733-7.html
他说的是真的