欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

浅析Android 手机卫士设备管理权限锁屏

程序员文章站 2024-03-01 09:28:16
推荐阅读: 浅析android手机卫士sim卡绑定 深入浅析android手机卫士保存密码时进行md5加密 详解android 手机卫士设置向导页面 浅析andro...

推荐阅读:

浅析android手机卫士sim卡绑定

深入浅析android手机卫士保存密码时进行md5加密

详解android 手机卫士设置向导页面

浅析android手机卫士关闭自动更新

浅析android手机卫士自定义控件的属性

浅析android手机卫士读取联系人

浅析android手机卫士接收短信指令执行相应操作

浅析android手机卫士手机定位的原理

浅析android手机卫士之手机实现短信指令获取位置

设备管理员 device admin

获取devicepolicymanager对象,通过getsystemservice(device_policy_manager),设备策略管理器

调用devicepolicymanager对象的locknow()方法,锁定,此时会报 安全异常

新建一个类myadmin继承系统的deviceadminreceiver,这个是广播接收者

清单文件进行注册

添加<receiver>节点,设置名称

设置权限 android:permission=”android.permission.bind_device_admin”

添加<meta-data>元数据节点,设置名称 android:name=”android.app.device_admin”

设置资源 android:resource=”@xml/device_admin_sample”

在res目录下新建xml的文件夹,新建一个device_admin_sample.xml文件

添加<intent-filter>节点,添加动作,android.app.action.device_admin_enabled

此时还会报错

打开系统设置,找到设备管理器,勾选设备管理员权限,激活设备

开启管理员权限

获取intent对象,new intent(devicepolicymanager.action_add_device_admin)

调用intent对象putextra(),传递数据,要激活的组件,

参数:devicepolicymanager.extra_device_admin,componentname组件名对象

获取componentname对象,new出来,参数:上下文,myadmin.class

调用intent对象putextra(),传递解说数据,劝说用户开启,参数:

devicepolicymanager.extra_add_explanation,文本

调用startactivity()

调用devicepolicymanager对象的isadminactive()方法,可以判断是否有管理员权限,参数:componentname对象

调用devicepolicymanager对象的resetpassword()方法,重置密码,参数:password,0,把password设置为””可以取消密码

调用devicepolicymanager对象的wipedata()方法,清除数据,参数:清除sd卡deviceplocymanager.wipe_exteranl_storge

如果是0,就是恢复出厂设置

卸载软件

这个装上就卸载不掉了

调用devicepolicymanager对象的removeactiveadmin()方法,清除管理员权限,参数:componentname组件名对象,获取componentname对象,new出来,参数:上下文,myadmin.class

获取intent对象

调用intent对象的setaction()方法,设置动作,参数:android.intent.action.view

调用intent对象的addcategory()添加类型,参数:android.intent.category.default

调用intent对象的setdata(),设置数据,

参数:uri对象,获取uri对象uri.parse(“package:”+getpackagename())

调用startactivity()

device_admin_sample.xml

<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
<uses-policies>
<limit-password />
<watch-login />
<reset-password />
<force-lock />
<wipe-data />
<expire-password />
<encrypted-storage />
<disable-camera />
</uses-policies>
</device-admin>

package com.tsh.mylockscreen;

import android.app.activity;
import android.app.admin.devicepolicymanager;
import android.content.componentname;
import android.content.intent;
import android.net.uri;
import android.os.bundle;
import android.view.view;
import android.widget.toast;
public class mainactivity extends activity {
private devicepolicymanager dpm;
componentname who;
@override
protected void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.activity_main);
dpm = (devicepolicymanager) getsystemservice(device_policy_service);
who=new componentname(this, myadmin.class);
}
// 一键锁屏
public void lockscreen(view v) {
if (dpm.isadminactive(who)) {
dpm.locknow();
dpm.resetpassword("123", 0);
} else {
intent intent =new intent(devicepolicymanager.action_add_device_admin);
intent.putextra(devicepolicymanager.extra_device_admin, who);
intent.putextra(devicepolicymanager.extra_add_explanation,"快开启吧");
startactivity(intent);
toast.maketext(this, "没有设备管理权限", 1).show();
}
}
//一键卸载
public void uninstall(view v) {
dpm.removeactiveadmin(who);
intent intent=new intent();
intent.setaction(intent.action_delete);
intent.addcategory("android.intent.category.default");
intent.setdata(uri.parse("package:"+getpackagename()));
startactivity(intent);
}
}

以上所述是小编给大家介绍的android 手机卫士设备管理权限锁屏的相关知识,希望对大家有所帮助!