1、蓝牙MTU
BLE默认wirite特征值Notify发送数据一帧最大携带20字节数据。蓝牙4.2协议规范后可以通过客户端修改MTU大小,修改范围为23-517个字节。首次连接为了兼容所有的BLE蓝牙设备,所有服务端默认的MTU 为23,去掉1个字节的操作码和2个字节的UUID句柄,所以默认一包最多传20个字节。在蓝牙连接建立后,客户端和服务端会互相交互字节最大支持的MTU,客户端(比如手机)可以根据时间情况修改服务端(蓝牙外设)支持的MTU大小。
注意:iOS 没有开放的API来请求MTU更改/更新,iOS 系统会默认去手机和外设二者支持的最小值定义连接的MTU
2、RSSI说明
在 iOS 中,当读取外设的 RSSI(接收信号强度指示)时,有可能获取到正数的数值。这是由于 RSSI 属于一个相对的数值,其代表着当前设备所接收的信号强度与发射信号时功率之间的差值,通常单位为分贝(dB)。在 iOS 里,RSSI 的数值是一个 8 位带符号的整数,取值范畴处于 -127 至 +20 之间。负数的数值意味着接收到的信号强度比发射信号弱,而正数的数值则表明接收到的信号强度比发射信号强。
不过需要留意的是,RSSI 的数值并非绝对精准,因为它会受到众多因素的左右,像是距离、障碍物、天气等等。所以,在运用 RSSI 时,应当将其视作参考数值,并结合其他的因素来进行分析和判别。