我用BTLE对一些BTLE设备做出反应,我只需要知道BTLE设备何时在一定范围内,我不需要对,只需要知道RSSI值,
我的问题是
didDiscoverPeripheral
大约每隔10秒一次
我能改变这个间隔时间使它更短吗?
谢谢!
发布于 2013-10-22 05:51:22
在CoreBluetooth中,当设备找到新的外围设备时调用didDiscoverPeripheral方法。此外,您还可以在字典中提供如下选项:
NSDictionary * options = [NSDictionary dictionaryWithObjectsAndKeys:@YES, CBCentralManagerScanOptionAllowDuplicatesKey, nil];当外围设备的RSSI与以前的RSSI相比发生变化时,将CBCentralManagerScanOptionAllowDuplicatesKey设置为yes使didDiscoverPeripheral被调用。这非常快,就像didDiscoverPeripheral在近毫秒内被调用一样。首先,检查您的字典标志是否设置为“是”。否则,你的外围可能出了点问题。试着用不同的外设测试它。
发布于 2015-06-18 09:34:40
我总结了两种周边扫描方法的实现经验。我通常使用CBCentralManagerScanOptionAllowDuplicatesKey:FALSE选项进行正常扫描。我总是实现一种名为targetScan的方法来扫描外设一个特定的时间模式。因此,您可以实现一个间隔为10秒的调度定时器。每次发送这个定时器,并在2秒后用选项CBCentralManagerScanOptionAllowDuplicatesKey:TRUE调用一个带有"ScanForPeripheral“的方法,您就可以通过quitThis进行特定的扫描,并使用CBCentralManagerScanOptionAllowDuplicatesKey:FALSE调用”正常扫描模式“。
希望这能帮上忙!
https://stackoverflow.com/questions/19509380
复制相似问题