ios BTLE didDiscoverPeripheral更改发现时间间隔

时间:2013-10-22 05:05:20

标签: ios bluetooth-lowenergy

我使用BTLE对某些BTLE设备做出反应, 我只需要知道BTLE设备何时在一定范围内, 我不需要配对,只知道RSSI值,

我遇到的问题是

的速度
  

didDiscoverPeripheral

大约10秒间隔

我可以更改此间隔时间以缩短时间吗?

谢谢!

2 个答案:

答案 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

希望这有帮助!