Я начал писать это как комментарий, но это оказалось слишком большим.
Я тоже ничего не нашел. Вы can't have a key listener on services, и вы, по-видимому, не можете зарегистрировать широковещательный приемник для кнопки питания, only for media buttons. Может быть, вы можете сделать это на широковещательном приемнике для включения экрана и проверить, какая текущая активность)? Like this, например:
ActivityManager am = (ActivityManager) this .getSystemService(ACTIVITY_SERVICE);
List<RunningTaskInfo> taskInfo = am.getRunningTasks(1);
ComponentName componentInfo = taskInfo.get(0).topActivity;
Log.d(WebServiceHelper.TAG, "CURRENT Activity ::" + taskInfo.get(0).topActivity.getClassName()+" Package Name : "+ componentInfo.getPackageName());
Если вы можете получить обнаружить, что активность с фокусом является Lockscreen, вы увеличиваете шансы быть пользователь, который включил его/ее телефон. Может быть, альтернативный метод на вещательном приемнике to detect if the phone is locked, но я предполагаю, что это будет, как правило, делом независимо от того, отображается текущая активность:
KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
boolean locked = km.inKeyguardRestrictedInputMode();
Надеется, что это может как-то помочь. Это интересный вопрос.
См. Http://stackoverflow.com/a/9478013/362298 –
Это действие используется для определения того, когда экран включен \ выкл. Я хочу знать, когда пользователь включает экран –