设为首页 加入收藏

TOP

Android 激活Deviceadmin,并进行锁屏和恢复出厂设置
2014-11-24 11:50:11 来源: 作者: 【 】 浏览:1
Tags:Android 激活 Deviceadmin 进行 恢复 出厂 设置

其实从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




android:resource="@xml/my_admin" />

/>




my_admin.xml

< xml version="1.0" encoding="utf-8" >











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获取手机经纬度 下一篇《QQ表情版贪吃蛇游戏》项目实作..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·深入理解 Java 集合 (2025-12-27 07:22:48)
·Java集合框架全面解 (2025-12-27 07:22:45)
·时隔 15 年,巨著《J (2025-12-27 07:22:43)
·定义一个类模板并实 (2025-12-27 06:52:28)
·一文搞懂怎么用C语言 (2025-12-27 06:52:25)