ExternalAccessory ライブラリを介して Bluetooth 2.1 センサー デバイスと対話する iPhone アプリ (iOS 7.0) があります。アプリが通常の方法 (ロック、ホーム ボタン、自動スリープなど) のいずれかによってバックグラウンド化された場合、デバイスとの通信に使用するアプリNSOutputStream
で見つかったへの書き込みを再開しようとすると、SIGPIPE を取得します。また、書き込みエラーが発生したというEASession
内部エラーも発生します。EAOutputStream
その時点から、出力ストリームに書き込むことができなくなり、常にステータス 5 (End of Stream Reached) で返さNO
れます。hasSpaceAvailable
潜在的な関心: が示してEAAccessory
いるのは示されていますが、示されているものは示されています。それらは同一の特性を持っています。この状況の間、センサー デバイスのリンク ライトは点灯したままで、[設定] > [Bluetooth] 画面にアクセスすると、デバイスが「接続済み」と表示されます。アプリを強制終了して再起動することが、通信を再開する唯一の方法です。EASession
connected: NO
[[EAAcessoryManager sharedAccessoryManager] connectedAccessories]
connected: YES
connectionId
これを適切に処理する方法を知っている人はいますか? アプリがバックグラウンドに入る前に「閉じる」コマンドをストリームに送信し、戻ってきたら再び「開く」必要がありますか?