2017-06-13 21 views
0

iPhoneがBLEデバイスをスキャンし、スリープモードになっているときにその広告データを読み取ることができるかどうか検索しようとしています。iOS BLE電話機がスリープモードのときに広告データをバックグラウンドでスキャン

たとえば、デバイスがその広告データを変更すると、電話が起きてローカル通知が発生します。つまり、アプリはバックグラウンドモードでx時間実行されています。

可能ですか?アンドロイドであるからです。

+0

あなたが探している特定のサービスを知る必要があります。あなたはバックグラウンドですべてのサービスをスキャンすることができます – Paulw11

+0

@ Paulw11私は電話がスリープ状態になるが、直後にCBCentralManagerがPoweredOff状態になるように電源ボタンを押してみました。それは自然ですか?スリープ状態でもスキャンできるように回避策を講じることはできますか? – theFool

+0

どのスキャンコードを使用していますか?あなたのアプリにブルートゥース中心のバックグラウンドモードを追加しましたか? – Paulw11

答えて

1

あなたのアプリがバックグラウンドで実行されている場合、周辺スキャンには制限があります:

  • はあなたが興味のあるサービスのUUIDを指定する必要があります。 nil
  • 重複スキャンオプションキーはサポートされていません。これは、周辺機器が以前にアプリによって発見された場合、重複キーは、バックグラウンドで無視されたようそしてその発見が再トリガされません

ご希望の結果を達成することからあなたを妨げているものをおそらくdidDiscoverPeripheralデリゲートメソッドでありますあなたのアプリが再起動されるまで。

長期的な発見のためには、状態復元をオプトインする必要がありますが、Xcodeで実行されている簡単なテストケースでは必要ありません。

関連する問題