1

私は BLE 周辺機器をスキャンする iOS アプリを持っていますが、その多くが存在する可能性があり、ユーザーがデバイスに接続するかどうかを決定できるようにします。接続すると、ユーザーは接続を切断することもできます。これはすべて正常に機能します。

ユーザーが気が変わってデバイスを再スキャンできるようにするオプションも追加したいと思いますが、これには問題があるようです。これを行う最も明白な方法は、次のようにスキャンを停止して再起動することです。

    [centralManager stopScan];

    CBUUID *myServiceUUID = [CBUUID UUIDWithString: SERVICE_MYSERVICE];
    NSArray *services = [[NSArray alloc] initWithObjects: myServiceUUID, nil];
    [centralManager scanForPeripheralsWithServices: services options: nil];

これは動作しません。

最終的に、iOS はデバイスが再度アドバタイズしていることをアプリに通知することを決定しますが、これには数分かかります。

数分待たずに iOS が周辺機器についてもう一度教えてくれるようにするにはどうすればよいですか?

4

1 に答える 1

0

CBCentralManagerScanOptionAllowDuplicatesKeyを初期化するときにオプションを有効にすることができますCBCentralManager。アプリがフォアグラウンドにあるときは一定のコールバックを受け取りますが、CBCentralManagerScanOptionAllowDuplicatesKeyアプリがバックグラウンドにあるときは無効になることに注意する必要があります。また、スキャン間隔はフォアグラウンドの 60 分の 1 に調整されます。

于 2014-11-03T18:51:10.260 に答える