先说点题外话,lenovo的手机质量真不是特叫人放心,不如他家的电脑。媳妇的手机电源键不怎么好用了,好在点亮屏幕可以使用侧边的音量键,但是锁屏就只能按电源键了,经常按了好几次都锁不上。于是,有了下面关于一键锁屏的例子。
言归正传,android从2.2的API开始google就放出了一个新的锁屏api,lockNow方法,位于android.app.admin.DevicePolicyManager包下,这里简单介绍一下她的使用方法,希望对大家有帮助;
1.policyManager的实例:由于PolicyManager也是属于系统提供的服务,同NotificationManager的实例方法相同,需要通过getSystemService来获取。
policyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
2.判断是否获得相应设备权限:这里涉及需要定义一个conpomentName(android.content.ComponentName),它有两个构造参数,第一个是应用的上下文Context,第二个是一个继承自DeviceAdminReceiver的自定义类的类类型(一般是这样的new ComponentName(this, AdminReceiver.class))。
3.判断是否有权限,使用policyManager.isAdminActive(componentName)。
4。如果没有权限,启动设备管理(隐式Intent) - 在AndroidManifest.xml中设定相应过滤器,请求获取相应权限。并在Activity中重写OnActivityResult()函数,在里面判断是否获取权限成功,是则锁屏并finish(),否则继续调用activeManage()获取权限。
锁屏流程如下:
相关的例子代码已经放在github上,地址如下:
https://github.com/hyy12345678/LockScreen