2014-02-06 79 views
0

當SCREEN_ON使用BroadcastReciever時,我可以得到爲什麼屏幕亮的原因嗎?(用戶在手機上按下了開/關按鈕,或者它是一些應用程序,例如鬧鐘鈴聲)?Android。 SCREEN_ON原因

回答

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中區分出原因。