android锁屏唤醒并解锁屏幕

1、这个方法是实现锁屏状态下唤醒手机,亮屏并解锁屏幕:

  public static void wakeUpAndUnlock(Context context){
    //屏锁管理器
    KeyguardManager km= (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
    KeyguardManager.KeyguardLock kl = km.newKeyguardLock("unLock");
    //解锁
    kl.disableKeyguard();
    //获取电源管理器对象
    PowerManager pm=(PowerManager) context.getSystemService(Context.POWER_SERVICE);
    //获取PowerManager.WakeLock对象,后面的参数|表示同时传入两个值,最后的是LogCat里用的Tag
    PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_DIM_WAKE_LOCK,"bright");
    //点亮屏幕
    wl.acquire();
    //释放
    wl.release();
  }

加入权限:

    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>

2、这个收集的:

 //锁屏、唤醒相关
  private KeyguardManager  km;
  private KeyguardLock kl;
  private PowerManager pm;
  private PowerManager.WakeLock wl;
  
  private void wakeAndUnlock(boolean b)
  {
    if(b)
    {
      //获取电源管理器对象
      pm=(PowerManager) getSystemService(Context.POWER_SERVICE);
      //获取PowerManager.WakeLock对象,后面的参数|表示同时传入两个值,最后的是调试用的Tag
      wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "bright");
      //点亮屏幕
      wl.acquire();
      //得到键盘锁管理器对象
      km= (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);
      kl = km.newKeyguardLock("unLock");
      //解锁
      kl.disableKeyguard();
    }
    else
    {
      //锁屏
      kl.reenableKeyguard();
      //释放wakeLock,关灯
      wl.release();
    }
  }

说明:

getSystemService取不到就获取上下文对象getActivity().getSystemService()。

    原文作者:Dijkstra算法
    原文地址: https://blog.csdn.net/bsmmaoshenbo/article/details/51525655
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞