Android系统。 SCREEN_ON原因

时间:2014-02-06 13:23:57

标签: android

当我使用广播接收器用于SCREEN_ON时,我能获得屏幕打开的原因吗?(用户按下了电话上的开/关按钮,或者是某些应用程序,例如闹钟响铃)?

1 个答案:

答案 0 :(得分:1)

PowerManagerNotifier(Notifier.java)是系统打开屏幕时广播ACTION_SCREEN_ON的地方。

https://code.google.com/p/android-source-browsing/source/browse/services/java/com/android/server/power/Notifier.java?repo=platform--frameworks--base

mScreenOnIntent = new Intent(Intent.ACTION_SCREEN_ON);
mScreenOnIntent.addFlags(
    Intent.FLAG_RECEIVER_REGISTERED_ONLY | Intent.FLAG_RECEIVER_FOREGROUND);

正如您从上面所看到的那样,广播的意图不包含任何有关打开原因的信息。因此,您无法区分ACTION_SCREEN_ON的BroadcastReciever原因。