2017-04-11 6 views
0

Bluetooth周辺機器に接続するiOSアプリがあります(接続ボタンと考える)。ペリフェラルは固定された場所にあるため、必ずしもiOSデバイスの範囲内にあるわけではありません。私のアプリはバックグラウンドタスクとして実行されることを意図されており、周辺機器は定期的に私のアプリケーションにボタンプレスを通知します。iOS BLEアプリをバックグラウンドで維持するベストプラクティス方法

私は、(私は)メモリ圧迫のために私のアプリを殺すことがあることがわかります。

https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/CoreBluetoothBackgroundProcessingForIOSApps/PerformingTasksWhileYourAppIsInTheBackground.html

を...周辺へのBluetooth接続が復元され、周辺にボタンが押された時はいつでも殺さアプリをリニューアルによって:私は、BLE状態の保存と復元が私を助けるだろうと思いました。しかし、この記事:

BLE background reconnect

...(アントンによるコメント)その状態の回復を示唆しているようだ少しフレーク状で、BTは、機内モードに以降/オフされた後の状態を復元することはできません

これはBLE状態の復元でも同じですか?それを働かせようと時間を無駄にしていますか?それがうまくいくならば、どこにでもよい実装例がありますか?

状態の復元を使用できない場合は、他にもオプションがありますか?

  • 私のアプリフットプリントを小さくしておくと、iOSで殺される可能性は低くなりますか?
  • アプリを稼働させているリモートサーバに何らかのキープアライブ通信を追加しますか?
  • メッセージやVOIPなどの機能をアプリに追加する(アプリストアの承認を得るには合法的である必要があります)。アプリケーションを再起動し、BLEペリフェラルによって接続が再確立されるか、またはウェイクアップでVOIP固有のAPI呼び出しのみが許可されるのでしょうか?
  • 他に何か?

明らかに、上記のリストは、BLE状態の復旧が私の仕事をするのにあまり好ましくないとしています。どんなアドバイスも大変ありがとうございます。

+0

飛行機モードをトグルした後に再接続しないことについてのコメントはどこにありますか?また、長期間接続していた場合は、再起動後に再起動することもかなり確実です。実際に状態の復元を実装しようとしましたが、問題がありましたか?私は、BLEがiOS上でうまく使えないことを発見しましたが、問題が発生する前に回避することから始めません。 (もちろん、あなたのメモリ使用量が多い場合はそれに取り組むべきですが、それはまったく別物です) –

+0

飛行機モードの問題は、開発者が以下のようにいくつかの場所で言及しているのを見てきました。[link](https: //forums.developer.apple.com/thread/26798)(これはオリジナルの投稿のリンクと同じポスターです)、これらの問題が依然として持続しているのか、それとも古いバージョンのiOSに関連しているのかはわかりません。私は状態の復元を働かせようとしているが、私は私の時間を無駄にしていないことを確認したいいくつかの否定的な記事を見た!優れた実用的なソリューションへのリンクは素晴らしいでしょう! –

+0

誰もが何らかのテクニックを提案できますか? –

答えて

0
私はあなたにも読みたいかもしれないことをしばらく前にここにコメントを書き込みました。

Does CBCentralManager connect ever time out?

とにかく、小さなアプリのフットプリントを維持するとアプリが早期に殺される可能性が低くなるかもしれないが、最終的にそれをそれは無関係に起こります。 VOIPは本当に正当な理由があれば良い解決策になるかもしれません。あなたはVOIPプッシュメッセージを読みたいかもしれません。 重要なロケーションの変更を購読することも非常に便利ですが、多くのユーザーが移動する場合にのみ有効です。 BLEを「固定」のiPadsで使用しているユーザーがいる場合などは役に立ちません。 前にも触れましたが、あなたの使用状況に応じて「OK」のように動作させることができますが、100%は不可能です。また、Apple Watchのバグは少し残念です。私は今時計のペアを持っているので、私は基本的に自分自身のためにコアのBluetoothをあきらめました。

私はいくつかのApple bluetoothエンジニアと連絡を取っており、多かれ少なかれ問題に気づいていることを確認しました。なぜ彼らはそれを修正しませんか分かりませんが、サードパーティの周辺機器がうまく動作することを確認することが重要な優先事項ではないことは明らかです。それは自分の製品(時計、EarPodsなど..)になると刑務所の彼らは同じ制限がありません。

関連する問題