しばらくの間正常に動作しているオーディオを録音するアプリがあります。iOS の低レベルの AudioQueue/AudioSession API を使用します。しかし、最近のモデル (「第 4 世代」) の iPod Touch では、アプリが録音を開始すると、iPod は 1 分後に画面が暗くなり、さらに 1 分後にブラックアウトしてロックされます。「ホーム」を押してロックを解除すると、アプリが終了しました。
iPod が Xcode に接続されている場合、iPod は暗くならないため、これを Xcode で実際にデバッグすることはできないことに注意してください。
Apple は最近のバージョンの iOS で何か変更を加えたのでしょうか、それとも新しい iPod Touch モデルに何か変なところがありますか?
追加した:
コンソール ログを見ると、アプリは問題なく動作しています。UserEventAgent[12] <Warning>: DEBUG: Changing screen blanked state: 1
次に、レコーダーが停止コマンドを受信したことがわかります。applicationWillTerminate
これは明らかにまたはからの呼び出しの結果でしたapplicationDidEnterBackground
。
(実際に<Notice>
は、UserEventAgent のメッセージの前に、SpringBoard からのメッセージPosting 'com.apple.iokit.hid.displayStatus' notifyState=0
と "がいくつかありますultitouchHID: detection mode: 0->255
。)
(そして、アプリは記録セッションを完全にシャットダウンしようとしていて、OS が今すぐ終了することを望んでいるため、最終的にクラッシュします。しかし、これは事態が悪化した後のことです。)
調査します
UIApplication idleTimerDisabled
plist "必要なバックグラウンド モード"