10

私はBluetooth 4.0 LEを利用しているアプリケーションを持っています。このアプリケーションにより、デバイスは中央および周辺機器として動作することができます。CoreBluetooth Central Managerはバックグラウンドで周辺機器を検出できません

アプリケーションをバックグラウンドで実行します。私はすでに "Bluetooth-中央"と "Bluetooth-周辺機器"を持つUIBackgroundModesをinfo.plistに含めました。

私はBluetooth 4.0 LE対応の2つの異なるデバイスでアプリケーションを実行しています。

両方のデバイスがフォアグラウンドで実行されている場合、すべてが正常に動作し、情報は双方向に渡されます。

1つのデバイスがフォアグラウンドで実行され、もう1つがバックグラウンドで実行されている場合、バックグラウンドで実行されているデバイスはスキャンおよびアドバタイズできますが、バックグラウンドで実行されている他のデバイスは検出できません。フォアグラウンドで実行されているデバイスは、バックグラウンドで実行されているデバイスを検出して接続することができます。

Apple's Core Bluetooth Programming Guideで読んだ後、別のデバイスに接続して情報を共有することは可能です。

私は、リクエストに応じてさらに情報を掲載することができます。ありがとうございました。

答えて

8

周辺デバイスがバックグラウンドの場合、広告サービスは「オーバーフロー領域」にプッシュされ、ペリフェラル名はまったく宣伝されません。さらに、広告間隔が増加します。理論的には、iOS BLEスタックはこのケースを処理し、オーバーフロー領域データを要求する必要がありますが、そうしません。同時に、の背景にあるのスキャンも遅くなります。さらに、特定のサービスUUIDが動作する必要があります。 (nilサービスを使用してバックグラウンドでスキャンすることはできません)

結果として、バックグラウンド中央のバックグラウンドデバイスをスキャンすることはできません。

これはバグでも機能でも、Appleだけが知っている。レーダーを開き、問題を教えてください。私たちの多くがこれを行うと、より良いチャンスを得ることができます。

+0

ありがとうございました。数日の調査の後、TSIをAppleに提出しました。私はこの問題を把握するときにこの記事を更新します。 – tagabek

+0

TSI?私はまだその言葉を見ていない。 – allprog

+0

テクニカルサポートインシデント。基本的にアップルのエンジニアに詳細なヘルプ(コードレベル)を求めています。 – tagabek

関連する問題