我使用BTLE对某些BTLE设备做出反应, 我只需要知道BTLE设备何时在一定范围内, 我不需要配对,只知道RSSI值,
我遇到的问题是
的速度didDiscoverPeripheral
大约10秒间隔
我可以更改此间隔时间以缩短时间吗?
谢谢!
答案 0 :(得分:1)
在CoreBluetooth中,当设备找到新的外围设备时,会调用发现外围设备方法。您也可以在字典中提供选项:
NSDictionary * options = [NSDictionary dictionaryWithObjectsAndKeys:@YES, CBCentralManagerScanOptionAllowDuplicatesKey, nil];
使CBCentralManagerScanOptionAllowDuplicatesKey为yes,只要外围设备的RSSI从之前发生变化,就会调用didDiscoverPeripheral。这非常快,就像在几乎毫秒内调用didDiscoverPeripheral一样。首先检查字典标志是否设置为YES。否则外围设备可能出现问题。尝试用不同的外围设备进行测试。
答案 1 :(得分:1)
我实践了两种扫描外围设备的方法。我通常使用选项CBCentralManagerScanOptionAllowDuplicatesKey:FALSE进行正常扫描。我总是实现一个名为targetScan的方法来扫描特定时间模式的外设。因此,您可以实现间隔为10秒的调度计时器。每次调度此计时器并使用" ScanForPeripheral"使用选项CBCentralManagerScanOptionAllowDuplicatesKey:TRUE 2秒后您可以退出此特定扫描并调用正常扫描模式"与CBCentralManagerScanOptionAllowDuplicatesKey:FALSE
希望这有帮助!