私のアプリケーションでは、ユーザーが起床して午前、午後、または起床するたびに携帯電話の電源を入れると、ウェルカムメッセージで起動するかどうかを検出する必要があります。ホームスクリーンやピンなどにパターンを入力してください。デバイスが使用されていない時間を特定する方法は?
私は、デバイスが前回使用された時間を測定することによってこれをしたいです。私は8時間の睡眠を前提としています。最後のスイッチオフから8時間が経過すると、次回携帯電話の電源を入れたときに、アプリケーションが起動します(それぞれ内部の機能)。
ので数えてはならないユーザーとの対話が、アラームまたは何も起こって画面。
私はlogcatを見て、それは私に有用な情報I/PowerManagerService: Going to sleep due to power button
を与えました。そのため、PowerManagerServiceListenerが可能です。私はhttps://developer.android.com/reference/android/os/PowerManager.htmlを見つけましたが、積極的に表示を維持するためであり、受動的に報告するためではありません。
別の候補者は、KeyguardViewMediator: onStartedGoingToSleep(2)
とKeyguardServiceDelegate: onScreenTurnedOff()
です。
確かに、私はlogcatを通じて見えポーリングアプリケーションを作成することができ、それは強く、電池排水のアプローチのように聞こえます。
私が欲しいものを達成するためには、パフォーマンスに優しい方法はありますか?
終了までの手段です。画面をタップしたり、電源ボタンを押したりするなど、デバイスとのやりとりの時間をどのように測定しますか? –