Iphone-4sで私のアプリにコア - ブルートゥースフレームワークを使用しています。
これは通常、できるだけ長く実行できるバックグラウンドアプリである必要があります。iphone 4sのBluetooth LEアプリのバックグラウンドの時間
今では、最大40分 - 最大1時間です。
私は少なくとも1日ほどは望んでいます。
この "bluetooth-central"値は.plistファイルの "Required background modes"キーに追加されています。
私のアプリは最後に「サスペンド」モードになるようです。アプリをもう一度開くと(前景状態の背景)通知を再び送信しているため、Bluetooth接続がまだ接続されていて、BLEデバイスがまだ通知を送信していることを意味します。私はホームボタンを押して、アプリがバックグラウンドに来る場合、それは再び通知を取得しません。
私のアプリがバックグラウンドモードで最大1時間しか生きていない理由を誰にでも教えてもらえますか?それは永遠のようにバックグラウンドで通常の音楽アプリのように実行し続ける必要があります。
アップルはバックグラウンドアプリ(5つのカテゴリに含まれる連続して実行されるバックグラウンドアプリのうちの1つ)が失敗してサスペンドモードになる条件について具体的に言いますか? I 2つの実装がnecessoryあるブルートゥースLEアプリケーションの実行時間の長いバックグラウンドタスクのために、それを知って来る「iPhoneAppProgrammingGuide
」、「Communicating with a Bluetooth Accessory
」セクション、 に参照
:
1)UIBackgroundModesキーがなければならない「ブルートゥース中央"のファイルInfo.plist
にあります。 2)Bluetoothデータのバックグラウンド処理をサポートするアプリは、すべてセッションベースでなければなりません。
私のアプリでは、最初の実装が組み込まれており、そのアプリケーションではバックグラウンドで実行し、 のすべてのタスクを最大1時間実行できます。
今私は2番目の実装を実装する必要があります。すなわちセッションベース。アプリが「サスペンド」状態の場合でも、ドキュメントに応じてイベントを取得できるようになります。 私は、クラシックBluetooth(外部アクセサリーフレームワーク)のための "EASession
"のようなBluetooth LE(コアBluetoothフレームワーク)固有の適切なセッションを作成しようとしました。しかし私はそれを見つけられませんでした。
基本的に私はどのセッションクラスをBLE目的に使用する必要があるのかよくわかりません。オーディオ/ビデオ、ネットワーキング、インターネット、外部アクセサリー、 には、個別のセッションクラスがあります。コアBluetoothフレームワークはありません。
誰かが私に助けてくれますか。どのセッションクラスがBLEに適していますか?
あなたは、あなたが望む限り、バックグラウンドで実行できるはずです。 –
私は同じことを見ている。私の周辺機器は数分間、iOSデバイスとの接続を失う可能性があり、範囲内に戻ってくると、バックグラウンドされたアプリはそれを見つけて続行します。しかし、何時間も接続が失われてしまうと、バックグラウンドのアプリはやり直しをやめます。 – Jonathan
ハックする必要がある場合は、バックグラウンドサウンドの再生も可能にし、アプリがバックグラウンドに入ったときに短いサイレントサウンドを連続してループし、アクティブになると停止します。 –