首先判断屏幕是否被锁:

KeyguardManager km = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);km.inKeyguardRestrictedInputMode();

屏幕解锁,有几个方法:

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

KeyguardManager.KeyguardLock k1;KeyguardManager km =(KeyguardManager)getSystemService(KEYGUARD_SERVICE);k1= km.newKeyguardLock("IN");k1.disableKeyguard();

小米手机不能解锁,发现是有权限设置的,在应用->APK名称->权限,允许解锁

这个方法已经被弃用了,也有问题,就是disable后,再次判断是否锁屏,inKeyguardRestrictedInputMode()返回值是true,看起来明明解锁了。

研究一轮后发现,卸载后锁屏界面会自动弹出,查资料,发现我们的应用不能获取第一次自动锁屏的时候的“锁”,所以也不能把第一次锁屏的锁给释放掉


2、

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);

@Overrideprotected void onPause(){getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);super.onPause();}

这个方法真是简单,放在你要解锁的activity的onCreate()函数中,然后系统锁就没了,也能自动释放了。


有个问题就是部分机子,例如coolpad7060不能自动解锁。



更多相关文章

  1. Android热更新框架Tinker无法更新?
  2. android 系统中静音后使得音量减键不能解除静音
  3. Android无法解锁debug
  4. Android(安卓)Q 电量使用图分析 show app usage
  5. 安装android studio 不能启动
  6. android 注册、登录实现
  7. Android(安卓)采用MD5注册登录,加密解密
  8. Android(安卓)获取闹钟引发的血案
  9. android 监听USB连接状态

随机推荐

  1. Android--ExpandbleView源码学习一---Exp
  2. Qt for Android获取手机序列号
  3. Android百度地图SDK:隐藏比例尺,隐藏百度LO
  4. 新版NDK环境搭建(免Cygwin,超级快)
  5. 【Fragment】 Android Fragment生命周期
  6. Android_布局属性大全
  7. android发送restful风格的http请求
  8. Android应用程序键盘(Keyboard)消息处理机
  9. 阅读《Android 从入门到精通》(31)——Inte
  10. FregServer进程,获取ServiceManager代理对