Android之判断手机黑屏以及锁屏

来源:互联网 发布:淘宝店招图片 编辑:程序博客网 时间:2024/04/29 12:16

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;                  }              }          };  




0 0