2012-12-29 15 views
6

私のアプリがバックグラウンドで実行されている間にBluetooth LE周辺機器広告を受け取る方法を理解するのに問題があります。つまり、私のアプリがバックグラウンドにあるときは、didDiscoverPeripheral()メソッドには到達しません。どこに広告があるのですか?誰かが私のアプリが設定されている間にBluetooth LE広告を取得できるようにする方法を知っていますか?バックグラウンド?私のアプリがバックグラウンドにいる間にスレッドポーリングでこれを行うことはできますか?注:私はすべてのBLEデバイスから広告を取得したいが、定義された数のBLEデバイスではない。コアBluetoothを使用してバックグラウンドでBluetooth LE周辺広告を取得する

は、私は私のアプリからこれをやっている

ケーシー

答えて

7

、助けに感謝します。

バックグラウンドモードCoreBluetoothは周辺機器の広告間隔よりも最大55倍遅いと言われています。それをスピードアップするために、最初の30秒間に20msごとに広告を出すようにペリフェラルをプログラミングしました。

また、プロジェクトの[ターゲット] - > [情報]で、[CoreBluetoothを使用してアプリケーションと通信する]で[バックグラウンドモードが必要]を定義する必要があります。

アプリがバックグラウンドモードで周辺機器を見つけるのに時間がかかります。

+1

ご協力いただきありがとうございます。私は家に帰るとすぐにこれを試してみて、それが動作するかどうかを知らせます。あなたが理解していることを確認するために、あなたのアプリはdidDiscoverPeripheral()メソッドに合っていますか?順番に、あなたのアプリがPeripherals広告を解析できるようにします。 – CaseyG

+0

うーん、私はまだそれを働かせることができませんでした。あなたの気持ちに合わせて広告の間隔を20msに変更しました。私は私の問題は私が制限のないスキャン(例:scanForPeripherals:nil options:options)を使っていて、制限付きのスキャンではないかもしれないと思う。 iOSは、あなたのアプリが[ここに記載されている]背景に入ったときに無制限スキャンをキャンセルすることがあります(http://stackoverflow.com/questions/9896562/what-exactly-can-corebluetooth-applications-do-whilst-in-the-background) 。無制限のスキャンを使用していますか、制限されていますか?可能であれば、私のアプリケーションに制限のないものを使用したいと思います。ご協力いただきありがとうございます。 – CaseyG

+0

さて、私はそれを働かせました。制限付きスキャンを使用する必要があります。また、ヘンリックのように約20ms間隔を設定する必要があります。ありがとう。 – CaseyG

関連する問題