0

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

我遇到的问题是

didDiscoverPeripheral

大约是10秒的间隔

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

谢谢!

4

2 回答 2

1

在设备找到新外围设备时调用的 CoreBluetooth didDiscoverPeripheral 方法。您也可以在字典中提供选项,例如:

NSDictionary * options = [NSDictionary dictionaryWithObjectsAndKeys:@YES, CBCentralManagerScanOptionAllowDuplicatesKey, nil];

将 CBCentralManagerScanOptionAllowDuplicatesKey 设置为 yes 会使 didDiscoverPeripheral 在外围设备的 RSSI 从 previous 更改时被调用。这非常快,就像在几乎毫秒内调用 didDiscoverPeripheral 一样。首先检查您的字典标志是否设置为 YES 。否则你的外设可能有问题。尝试使用不同的外围设备对其进行测试。

于 2013-10-22T05:51:22.867 回答
1

我获得了实现两种扫描外围设备的方法的经验。我通常使用选项 CBCentralManagerScanOptionAllowDuplicatesKey:FALSE 进行正常扫描。我总是实现一个名为 targetScan 的方法来扫描特定时间模式的外围设备。所以你可以实现一个间隔为 10 秒的调度定时器。每次调度此计时器并触发带有选项 CBCentralManagerScanOptionAllowDuplicatesKey:TRUE 的“ScanForPeripheral”的方法时,2 秒后您可以退出此特定扫描并使用 CBCentralManagerScanOptionAllowDuplicatesKey:FALSE 调用“正常扫描模式”

希望这可以帮助 !

于 2015-06-18T09:34:40.167 回答