在做防丟器的項目中,有一個比較實際的功能就是通過設置距離的大小來設置報警。但是框架中並沒有給出獲取距離的接口,只有一個相關的RSSI信號強度值。
在網上找了好長的一段時間,可以通過一個算法獲得到他的距離:
代碼如下!
-(void)peripheralDidUpdateRSSI:(CBPeripheral *)peripheral error:(NSError *)error
{
//NSLog(@"%s,%@",__PRETTY_FUNCTION__,peripheral);
int rssi = abs([peripheral.RSSI intValue]);
CGFloat ci = (rssi - 49) / (10 * 4.);
NSString *length = [NSString stringWithFormat:@"發現BLT4.0熱點:%@,距離:%.1fm",_peripheral,pow(10,ci)];
NSLog(@"距離:%@",length);
}