2

ExternalAccessory ライブラリを介して Bluetooth 2.1 センサー デバイスと対話する iPhone アプリ (iOS 7.0) があります。アプリが通常の方法 (ロック、ホーム ボタン、自動スリープなど) のいずれかによってバックグラウンド化された場合、デバイスとの通信に使用するアプリNSOutputStreamで見つかったへの書き込みを再開しようとすると、SIGPIPE を取得します。また、書き込みエラーが発生したというEASession内部エラーも発生します。EAOutputStream

その時点から、出力ストリームに書き込むことができなくなり、常にステータス 5 (End of Stream Reached) で返さNOれます。hasSpaceAvailable

潜在的な関心: が示してEAAccessoryいるのは示されていますが、示されているものは示されています。それらは同一の特性を持っています。この状況の間、センサー デバイスのリンク ライトは点灯したままで、[設定] > [Bluetooth] 画面にアクセスすると、デバイスが「接続済み」と表示されます。アプリを強制終了して再起動することが、通信を再開する唯一の方法です。EASessionconnected: NO[[EAAcessoryManager sharedAccessoryManager] connectedAccessories]connected: YESconnectionId

これを適切に処理する方法を知っている人はいますか? アプリがバックグラウンドに入る前に「閉じる」コマンドをストリームに送信し、戻ってきたら再び「開く」必要がありますか?

4

1 に答える 1