/**     * 唤醒手机屏幕并解锁     */    public void wakeUpAndUnlock() {        // 获取电源管理器对象        PowerManager pm = (PowerManager) getApplicationContext()                .getSystemService(Context.POWER_SERVICE);        boolean screenOn = pm.isScreenOn();        Log.d("WakeScreen0","screenOn: " + screenOn);        if (!screenOn) {            // 获取PowerManager.WakeLock对象,后面的参数|表示同时传入两个值,最后的是LogCat里用的Tag            @SuppressLint("InvalidWakeLockTag") PowerManager.WakeLock wl = pm.newWakeLock(                    PowerManager.ACQUIRE_CAUSES_WAKEUP |                            PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "bright");            wl.acquire(10000); // 点亮屏幕            wl.release(); // 释放        }        // 屏幕解锁        KeyguardManager keyguardManager = (KeyguardManager) getApplicationContext()                .getSystemService(KEYGUARD_SERVICE);        KeyguardManager.KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("unLock");        // 屏幕锁定//        keyguardLock.reenableKeyguard();        keyguardLock.disableKeyguard(); // 解锁        unLockScreen();    }    private void unLockScreen(){        final Window win = getWindow();        win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED                | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);        win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON                | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON                | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON);    }

 

/**     * 唤醒手机屏幕并解锁     */    public void wakeUpAndUnlock(Activity activity) {        Window win = activity.getWindow();        win.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD                | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED                | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);        PowerManager pm = (PowerManager) activity.getSystemService(POWER_SERVICE);        @SuppressLint("InvalidWakeLockTag")        PowerManager.WakeLock wakelock = pm.newWakeLock(                PowerManager.FULL_WAKE_LOCK                        | PowerManager.ACQUIRE_CAUSES_WAKEUP, "xx");        wakelock.acquire();        wakelock.release();        KeyguardManager keyguardManager = (KeyguardManager) activity.getApplicationContext()                .getSystemService(KEYGUARD_SERVICE);        if (mHomeActivity == null) return;        keyguardManager.requestDismissKeyguard(mHomeActivity, new KeyguardManager.KeyguardDismissCallback() {            @Override            public void onDismissError() {                super.onDismissError();                Log.d("xxx-->", "1 onDismissError");            }            @Override            public void onDismissSucceeded() {                super.onDismissSucceeded();                Log.d("xxx-->", "1 onDismissSucceeded");            }            @Override            public void onDismissCancelled() {                super.onDismissCancelled();                Log.d("xxx-->", "1 onDismissCancelled");            }        });        if (mRemoteActivity == null) return;        keyguardManager.requestDismissKeyguard(mRemoteActivity, new KeyguardManager.KeyguardDismissCallback() {            @Override            public void onDismissError() {                super.onDismissError();                Log.d("xxx-->", "2 onDismissError");            }            @Override            public void onDismissSucceeded() {                super.onDismissSucceeded();                Log.d("xxx-->", "2 onDismissSucceeded");            }            @Override            public void onDismissCancelled() {                super.onDismissCancelled();                Log.d("xxx-->", "2 onDismissCancelled");            }        });    }

 

转载: 

https://blog.csdn.net/xinpengfei521/article/details/73065769/

http://www.voidcn.com/article/p-qvvwwkxf-hy.html

 

更多相关文章

  1. 软键盘弹出影响布局
  2. Android(安卓)中获取屏幕长度及宽度
  3. Android如何截取当前View 为图片
  4. Android: 屏幕截图
  5. Android待机流程分析
  6. Android(安卓)Launcher 分析 .
  7. 【Android】android开发---实现屏幕旋转的两种方法
  8. android 实现屏幕截图
  9. android 当环境配置发生变化 例如语言 屏幕变化

随机推荐

  1. Android邪门歪道
  2. Android从网络中获得一张图片并显示在屏
  3. Android(安卓)emulator: ERROR: no searc
  4. EventBus for Android(安卓)源码分析
  5. android实现打电话和发短信的功能(10学员
  6. Android工程Debug证书过期解决方案
  7. Android(安卓)Studio 开启方法提示(方法的
  8. 如何去除android上a标签产生的边框
  9. android 的wake_locks
  10. Android(安卓)widget桌面小部件与RemoteV