如果API级别为4时,如何检测屏幕是打开还是closures?

我想知道如何检测屏幕昏暗或在Android 1.6的亮度。

我在API Level 7find了一个解决scheme。开发很容易:

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); boolean isScreenOn = pm.isScreenOn(); 

但是我需要Android 1.x的解决scheme。

你能build议我吗?

谢谢。

Solutions Collecting From Web of "如果API级别为4时,如何检测屏幕是打开还是closures?"

对于屏幕开关状态,您可以尝试使用ACTION_SCREEN_ONACTION_SCREEN_OFF Intent ,如以下博客所示: http : //thinkandroid.wordpress.com/2010/01/24/handling-screen-off-and-screen-上意图/

ACTION_SCREEN_ON的方法不适合我。 经过一些不同的解决scheme,这个代码终于为我解决了这个问题

 /** * 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(); } }