我想知道如何檢測屏幕昏暗或Android 1.6上的亮度。如何檢測API級別爲4時屏幕是打開還是關閉?
我發現在API級別7的解決方案很容易發展:
PowerManager pm = (PowerManager)
getSystemService(Context.POWER_SERVICE);
boolean isScreenOn = pm.isScreenOn();
但我需要爲Android 1.x的一個解決方案
你能建議我嗎?
謝謝。
我想知道如何檢測屏幕昏暗或Android 1.6上的亮度。如何檢測API級別爲4時屏幕是打開還是關閉?
我發現在API級別7的解決方案很容易發展:
PowerManager pm = (PowerManager)
getSystemService(Context.POWER_SERVICE);
boolean isScreenOn = pm.isScreenOn();
但我需要爲Android 1.x的一個解決方案
你能建議我嗎?
謝謝。
對於屏幕上的開關狀態,你可以用ACTION_SCREEN_ON
和ACTION_SCREEN_OFF
Intent
試試,如本博客文章:http://thinkandroid.wordpress.com/2010/01/24/handling-screen-off-and-screen-on-intents/
與ACTION_SCREEN_ON
的做法並沒有爲我工作。經過一些不同的解決方案,這段代碼終於爲我解決了這個問題:
/**
* Is the screen of the device on.
* @param context the context
* @return true when (at least one) screen is on
*/
public boolean isScreenOn(Context context) {
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) {
DisplayManager dm = (DisplayManager) context.getSystemService(Context.DISPLAY_SERVICE);
boolean screenOn = false;
for (Display display : dm.getDisplays()) {
if (display.getState() != Display.STATE_OFF) {
screenOn = true;
}
}
return screenOn;
} else {
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
//noinspection deprecation
return pm.isScreenOn();
}
}
謝謝。你很酷;) – Ferdinand 2011-05-11 08:01:39
ACTION_SCREEN_OFF意圖取決於用戶不是交互式的。它不會處理設備顯示/屏幕是否關閉。 – 2015-12-07 06:08:53