2017-11-15 22 views
1

ユーザーが電話に積極的に存在するかどうかを判断する方法はありますか?ユーザーがアクティブになっていることを確認してください

私はイベントをキャッチすることはできません。これらは、BroadcastReceiver内の特定の時点でのみ起動します。

intent.getAction().equals(Intent.ACTION_USER_PRESENT) 
intent.getAction().equals(Intent.ACTION_SCREEN_ON) 

その瞬間にアクティブなチェックを行うには簡単な方法が必要です。サービスが起動していて、電話がアクティブ(画面が表示されている)の間、サービスが起動しないようにします。

+2

「電話で積極的に」の正確な技術的な説明を入力してください。 – CommonsWare

+0

Intent.ACTION_USER_PRESENTに相当します。しかし、それを自由にチェックしたい。ブロードキャストが私に言うのを待つことはありません。 –

答えて

2

Android SDKのPowerManagerクラスで確認できます。

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
    boolean isScreenOn = pm.isScreenOn(); 
+0

Genius!ありがとう - これはトリックを行うように見えます。もしそうでなければ私は報告します。 –

+0

isScreenOn()は、isInteractive()[link](https://stackoverflow.com/questions/30718783/andorid-is-screen-on-or-off-deprecated-isscreenon)を使用して非推奨になりました。 –

関連する問題