一部のBTLEデバイスに反応するためにBTLEを使用しています.BTLEデバイスが特定の範囲内にあることを知る必要があるだけです.ペアリングする必要はありません.RSSI値を知っているだけです.
私が抱えている問題は、
didDiscoverPeripheral
約10秒間隔
この間隔時間を短くするために変更できますか?
ありがとう!
一部のBTLEデバイスに反応するためにBTLEを使用しています.BTLEデバイスが特定の範囲内にあることを知る必要があるだけです.ペアリングする必要はありません.RSSI値を知っているだけです.
私が抱えている問題は、
didDiscoverPeripheral
約10秒間隔
この間隔時間を短くするために変更できますか?
ありがとう!
Peripheral をスキャンするための 2 つの方法を実装する経験をしました。通常、通常のスキャンにはオプション CBCentralManagerScanOptionAllowDuplicatesKey:FALSE を使用します。私は常に targetScan というメソッドを実装して、特定の時間パターンで周辺機器をスキャンします。したがって、10 秒間隔でディスパッチ タイマーを実装できます。このタイマーがディスパッチされ、オプション CBCentralManagerScanOptionAllowDuplicatesKey:TRUE を使用して「ScanForPeripheral」でメソッドを呼び出すたびに、2 秒後にこの特定のスキャンを終了し、CBCentralManagerScanOptionAllowDuplicatesKey:FALSE で「通常のスキャン モード」を呼び出すことができます。
お役に立てれば !
CoreBluetooth では、デバイスが新しいペリフェラルを見つけたときに呼び出される didDiscoverPeripheral メソッド。また、次のような辞書でオプションを指定できます。
NSDictionary * options = [NSDictionary dictionaryWithObjectsAndKeys:@YES, CBCentralManagerScanOptionAllowDuplicatesKey, nil];
その CBCentralManagerScanOptionAllowDuplicatesKey を yes にすると、周辺機器の RSSI が以前の から変更されるたびに didDiscoverPeripheral が呼び出されます。これは、 didDiscoverPeripheral がほぼミリ秒で呼び出されるように非常に高速です。最初に辞書フラグが YES に設定されているかどうかを確認します。そうしないと、周辺機器に問題がある可能性があります。別の周辺機器でテストしてみてください。