ユーザーがスリープ ボタンを押しても、アプリの実行とユーザーとのやり取りを続けたいと考えています。
これまでのところ、私のアプリは次のコードで生き続けることができることを学びました:
NSTimer *timer = [NSTimer timerWithTimeInterval:0.5 target:self selector:@selector(timerFireMethod:) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
これは成功します。このメソッド
は、スリープ モードであっても 0.5 秒ごとに呼び出されます。
- (void)timerFireMethod:(NSTimer*)theTimer
だから私の問題は次のとおりです。スリープモードでアプリケーションと対話するにはどうすればよいですか? カスタム オーディオ ファイルの再生を開始するためのトリガーが必要なだけです。したがって、次を検出するようなトリガー イベントが必要です。
- ディスプレイでのタッチ
- 加速アクティビティ
- MotionShake イベント
しかし、applicationWillResignActive
-Event を取得した後、上記の何も機能していません。加速度計が加速度イベントの配信を停止します。そして、私はそれらを再び開始することができません。MotionShake イベントは配信されず、スリープ中にタッチ イベントをキャッチできるかどうかもわかりません。
更新
ユーザーが私のアプリを 5 時間使用することを期待しています。しばらくアイドル状態になると、自動的にスリープ状態になります。おそらく、スリープ モードの意味を誤解していたのでしょう。Iphone は常に稼働している必要がありますが、ディスプレイとバックグラウンド ライトを常にオンにする必要はありません (これらは最も電力を消費する部分です)。10 秒ごとにノイズのないサウンドを再生している間、iPhone がスリープ状態にならないことはわかっています。また、iPod アプリケーションはそのモードで実行でき、ユーザーはデバイスを振ることで操作できることを知っています。アプリが同じことを行うための公式な方法はありませんか?
---
誰にもアイデアはありますか?
ありがとう