1、黑屏

       /** 
         * 判断是否黑屏 
         * @param c 
         * @return 
         */  
        public final static boolean isScreenLocked(Context c) {  
      
                 android.app.KeyguardManager mKeyguardManager = (KeyguardManager) c.getSystemService(c.KEYGUARD_SERVICE);  
                 return !mKeyguardManager.inKeyguardRestrictedInputMode();  
      
            }  

2、锁屏

锁屏的判断,没有直接的方法,但是在Android的监听机制中,有一些事件可以进行判断:

Intent.ACTION_SCREEN_ON          //当按下电源键,屏幕亮起的时候

Intent.ACTION_SCREEN_OFF        //当按下电源键,屏幕变黑的时候

Intent.ACTION_USER_PRESENT        //当解除锁屏的时候


我们当时的应用环境是在某一个activity中使用,并且该activity已经继承了其他类,所以采用了动态注册的方法:

1、在oncreate()方法中,注册监听事件

// 注册事件  
        registerReceiver(myReceiver, new IntentFilter(Intent.ACTION_SCREEN_ON));  
        registerReceiver(myReceiver, new IntentFilter(Intent.ACTION_SCREEN_OFF));  
        registerReceiver(myReceiver, new IntentFilter(Intent.ACTION_USER_PRESENT)); 

2、写一个内部BroadcastReceiver

    private BroadcastReceiver myReceiver = new BroadcastReceiver() {  
              
            @Override  
            public void onReceive(Context context, Intent intent) {  
                // TODO Auto-generated method stub  
                if (Intent.ACTION_SCREEN_ON.equals(intent.getAction()) ) {//当按下电源键,屏幕亮起的时候  
                      
                }  
                if (Intent.ACTION_SCREEN_OFF.equals(intent.getAction()) ) {//当按下电源键,屏幕变黑的时候  
                    islockScreen = true;  
                }  
                if (Intent.ACTION_USER_PRESENT.equals(intent.getAction()) ) {//当解除锁屏的时候  
                    islockScreen = false;  
                }  
            }  
        };