ios的蓝牙开始都是通过系统的CBCentralManager来发現蓝牙设备和跟设备进行通信的
如果想在scan过程中就能够获取到设备的RSSI值,需要在SCAN时设置选项
回调后,表示发现了设备就可以通过然後连接设备;
如果设备连接成功,回调函数:
在设备连接成功后可以调用ReadRSSI,来获取设备的信号值RSSI的获得是通过
当然,防丢器肯定是需偠支持后台的所有需要设置应用程序的后台模式,在这里我们设置use bluetooth LE accessories,这样在后台就可以继续读取RSSI跟回调了
在实际使用的过程当中,發现设置了后台模式后读取RSSI的值持续时间不够长,读取一会就不继续读取了后来各种测试发现,自己使用一个定时器持续读取蓝牙设備的battery之所以读取battery,是因为设备的service中存在读取battery的serviceID试验中,发现如果不定时读取该值在后台运行的时候读取RSSI值就会中断
在测试过程中,根据RSSI值得到设备与手机之间的距离公式大概如下:
设备有时候怎么也获取不到RSSI值,而且刚刚就能够获取得到一会儿就之前就能够获取;經过各种排查问题,发现有可能外部蓝牙设备的问题另外一个是自己手机蓝牙的问题,双方都重启一下就可以解决问题