2012-04-23 22 views
1

CoreBluetooth Frameworkがアプリケーションを起動できるかどうかを誰かが教えてくれます(Bluetoothデバイスを使用して新しいデバイスを検出したときにアプリケーションに通知することができます)。アプリケーションがバックグラウンドで実行されていない場合また、私はアプリケーションがバックグラウンドで実行されている状況を知りたいです。ドキュメントに従って、このフレームワークはサスペンド状態からアプリケーションを起動します。誰かがこれをテストするためにiPhone 4Sを持っていないので、これに関するいくつかの情報を共有することができます。あなたのアプリがVoIPサービスを利用する際アドバンスCoreBluetoothFramework - IOSアプリケーションが起動していないときに起動しますか?

+0

アプリケーションが新しいデバイスを検出したときにアプリケーションを起動しましたか – srividya

答えて

4

おかげで、限り私が知っている、ユーザーの介入なしでアプリを起動する唯一の方法です。 Bluetooth LE(BTLE)デバイスを検出するには、CBCentralManagerインスタンスを設計したアプリのバックグラウンドで実行する必要があります。そうでなければ、近くにあるBTLEデバイスを検出する方法はありません。

アプリケーションを設計している場合、コア - ブルートゥースには、バックグランドが2つあります。イベントとセッション。

イベントバックグラウンド化
イベントバックグラウンド化は、Bluetooth低エネルギーデバイスと対話するとき、ほとんどのアプリが使用するどのようなおそらくです。このモードでは、アプリケーションがバックグラウンドにあるときにアクセサリに直接通信することはできませんが、アプリケーションと通信したいときにアクセサリからの通知が提供されます。あなたのアプリケーションがバックグラウンドにあるときにiOSはBTLEアクセサリに接続したままになり、通知を監視し続けます。接続されたBTLEアクセサリで通知が利用可能になると、iOSはアクセサリがあなたのアプリケーションと通信したいことをユーザに通知し、ユーザがアプリケーションを読み込んでアクセサリとやりとりできるようにします。多くのデバイスが節電する必要があるため、決定的な時間に情報を提供するだけで、アクセサリとiPhone 4Sのバッテリ寿命が大幅に向上します。

- このモードでは、info.plistエントリは必要ありません。

セッションバックグラウンド化
のAppは、それがバックグラウンドで実行されている場合でも、付属品と相互作用しなければならない時間があります。リアルタイムで心拍数を監視する必要がある実行中のアプリを考えてみましょう。このモデルには明確なSTARTとSTOPがあります。ユーザーは、アプリケーションでの実行を開始します。実行がアクティブである間、アプリケーションは、実行が完了するか停止するまで心拍数の情報を読み取ります。セッションバックグラウンドでは、アプリケーションがバックグラウンドにある間にBTLEアクセサリのスキャンと接続が可能です。アプリケーションがバックグラウンドにある場合でも、scanForPeripheralsWithServicesまたはconnectPeripheralコールは続行されます。 CoreBluetoothは、あなたのアプリケーションが探しているサービスと一致する特定の周辺機器または周辺機器を引き続き監視し、見つかったときまたは接続されたときにあなたのApps代理人に電話をかけます。 BTLEペリフェラルまたはiPhone 4Sがラジオを使用するたびに、それぞれのデバイスで使用可能な電力が消費されていることに注意してください。セッションベースのバックグランドを使用するアプリケーション開発者は、電力使用量に注意する必要があります。

  • セッションバックグラウンドでは、Apps info.plistのUIBackgroundModes(bluetooth-central)へのバックグラウンドモードのエントリが必要です。
関連する問題