9

我想弄清楚如何检测手机何时从黑屏模式唤醒并为该事件编写处理程序。那可能吗?这似乎是广播接收器应该处理的事情?还是有更好或更合适的方法?

4

3 回答 3

3

如果你有一个激活的服务,你可以捕捉这些事件

registerReceiver(new BroadcastReceiver() {

  @Override
  public void onReceive(Context context, Intent intent) {
    // do something
  }
}, new IntentFilter(Intent.ACTION_SCREEN_ON));

然而,这依赖于拥有一个永久运行的服务,我最近了解到这是不鼓励的,因为它很脆弱(操作系统喜欢关闭它们)并且永久使用资源。

令人失望的是,您的清单中似乎不可能有一个拦截 SCREEN_ON 事件的接收器。

这是最近出现的:

android.intent.action.SCREEN_ON 不能用作接收器意图过滤器

Android - 如何接收广播意图 ACTION_SCREEN_ON/OFF?

于 2010-04-05T07:24:10.280 回答
3

您还可以有一个广播接收器来捕获用户解锁设备时的 USER_PRESENT 广播意图。当然,某些版本的 Honeycomb 不支持这一点,但对于所有非脑死的 Android 版本(2.x 和 4.x),它运行良好。

于 2012-06-20T00:05:23.653 回答
0

你在广播接收器上是对的。您可以收听 SCREEN_ON 和 SCREEN_OFF 广播事件。

于 2010-04-05T07:26:51.833 回答