Android手机一般不用时,都会通过电源键来锁定屏幕同时关闭屏幕灯。
其实从API Level 8 (也就是Android 2.2) 开始, Android提供了DevicePolicyManager类, 可以让你的应用程序也能执行屏幕锁定等操作。
锁定效果:
要让自己的应用实现该屏幕锁定,主要需要用到以下几个类:DevicePolicyManager
这是设备管理的主类。通过它可以实现屏幕锁定、屏幕亮度调节、出厂设置等功能。
DeviceAdminReceiver
该类继承自 BroadcastReceiver 。 从源码可以看到,其实就是实现了一个OnReceive方法,该方法中根据不同的Action,执行相应的操作。 比如,如果激活成功,那么Action就是ACTION_DEVICE_ADMIN_ENABLED, 据此调用 onEnabled 方法。
系统源码:
- /**
- * Intercept standard device administrator broadcasts.Implementations
- * should not override this method; it is better to implement the
- * convenience callbacks for each action.
- */
- @Override
- public void onReceive(Context context, Intent intent) {
- String action = intent.getAction();
- if (ACTION_PASSWORD_CHANGED.equals(action)) {
- onPasswordChanged(context, intent);
- } else if (ACTION_PASSWORD_FAILED.equals(action)) {
- onPasswordFailed(context, intent);
- } else if (ACTION_PASSWORD_SUCCEEDED.equals(action)) {
- onPasswordSucceeded(context, intent);
- } else if (ACTION_DEVICE_ADMIN_ENABLED.equals(action)) {
- onEnabled(context, intent);
- } else if (ACTION_DEVICE_ADMIN_DISABLE_REQUESTED.equals(action)) {
- CharSequence res = onDisableRequested(context, intent);
- if (res != null) {
- Bundle extras = getResultExtras(true);
- extras.putCharSequence(EXTRA_DISABLE_WARNING, res);
- }
- } else if (ACTION_DEVICE_ADMIN_DISABLED.equals(action)) {
- onDisabled(context, intent);
- }
- }
具体中的简单引用:
屏幕锁定和恢复出厂设置
1.创建 MyAdmin 的广播接受者 继承 DeviceAdminReceiver
<receiver android:name=".MyAdmin">
<meta-data android:name="android.app.device_admin"
android:resource="@xml/my_admin" />
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED"
/>
</intent-filter>
</receiver>
my_admin.xml
<?xml version="1.0" encoding="utf-8"?>
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
<uses-policies>
<limit-password />
<watch-login />
<reset-password />
<force-lock />
<wipe-data />
</uses-policies>
</device-admin>
2.获取IDevicePolicyManager
DevicePolicyManager dm = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
3.注册广播接受者为admin设备
ComponentName mAdminName = new ComponentName(this, MyAdmin.class);
if (mService != null) {
if (!mService.isAdminActive(mAdminName)) {
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra (DevicePolicyManager.EXTRA_DEVICE_ADMIN,mAdminName);
startActivity(intent);
}
}
4.点击事件中进行锁屏或者清零数据处理
public void lock(View view){
dm.resetPassword("123", 0); //滑动解锁屏幕条后需要输入密码(方法中新设置的密码)才能真正解锁
dm.lockNow();
//恢复出厂设置.
//dm.wipeData(0);
}
分享到:
相关推荐
Android高级应用源码-安卓锁屏和恢复出厂设置功能.zip
安卓锁屏和恢复出厂设置功能.rar
此demo为安卓锁屏和恢复出厂设置功能,代码较为简单,可供参考
安卓锁屏和恢复出厂设置功能.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
一个DeviceAdmin功能的示例程序,这个超级管理员能够擦除SD卡数据、禁用相机、恢复出厂、立刻锁屏、重置锁屏密码 。
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
通过本示例的学习,初学者可轻松掌握如何获取Android系统管理员的权限
Android中如何禁止屏幕休眠和锁屏 Android中如何禁止屏幕休眠和锁屏
Android项目实战--手机卫士11--锁屏操作与恢复出厂模式
设置锁屏密码,在紧急呼叫中输入83991908-拨打-弹出恢复出厂设置按钮
android激活系统设备管理器之一键锁屏.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
Android修改源代码控制永不锁屏
Android调用系统锁屏,实现默认锁屏密码
本文档主要讲解锁屏的启动流程,锁屏的灭屏上锁,锁屏的亮屏解锁逻辑。 此文档适合SystemUI的初学者,能让SystemUI初学者立刻马上接手SystemUI锁屏模块。 有助于SytemUI锁屏的开发。 SystemUI锁屏初学者 SytemUI...
真我手机需要怎么解锁redlme手机屏幕锁激活不了解除强制解锁redlme手机锁屏密码清除方法教程恢复出厂.zip
Android框架浅析之锁屏(Keyguard)机制原理
android 闹钟提醒并且在锁屏下弹出Dialog对话框并播放铃声和震动
Android的屏幕禁止休眠和锁屏的方法