admin管理员组文章数量:1539107
锁屏和清除数据需要的权限比较高,需要先激活设备管理器策略,使应用程序获得权限
激活设备管理策略
步骤:
1.创建device-admin的xml文件,用来声明要申请的权限
2.自定义DeviceAdminReceiver的子类MyAdminReceiver(设备权限广播接收)
3.清单文件配置该广播,指定device-admin的xml文件
4.使用MyAdminReceiver创建ComponentName来开启权限申请页面
示例代码
device_admin_sample.xml 声明要申请的权限
<?xml version="1.0" encoding="utf-8"?>
<device-admin xmlns:android="http://schemas.android/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>
MyAdminReceiver.java
package com.itheima.mobilesafe.receiver;
import android.app.admin.DeviceAdminReceiver;
/**
* 给应用程序添加的设备管理员
* @author Administrator
*
*/
public class MyAdminReceiver extends DeviceAdminReceiver {
}
清单文件配置
<receiver
android:name="com.itheima.mobilesafe.receiver.<span style="color:#ff0000;">MyAdminReceiver</span>"
android:description="一键锁屏描述信息"
android:label="一键锁屏"
android:permission="android.permission.BIND_DEVICE_ADMIN" >
<meta-data
android:name="android.app.device_admin"
android:resource="@xml/<span style="color:#ff0000;">device_admin_sample</span>" />
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>
</receiver>
开启权限申请activity
private ComponentName cn;
cn = new ComponentName(Settings04Activity.this, MyAdminReceiver.class);
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, cn);
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
"开启管理员策略之后,可以一键锁屏、远程删除数据");
//打开激活管理员策略的界面
startActivity(intent);
激活界面
锁屏和清除数据
private DevicePolicyManager dpm;
bool bActive = dmp.isAdminActive(<span style="font-family: Arial, Helvetica, sans-serif;">new ComponentName(Settings04Activity.this, MyAdminReceiver.class)</span>);//判断是否激活设备策略权限
dpm = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
//删除数据
dpm.wipeData(0);//0表示恢复原厂设置 ,
dpm.wipeData(DevicePolicyManager.WIPE_EXTERNAL_STORAGE);//格式化SD卡
System.out.println("远程锁屏..................");
//一键锁屏
dpm.lockNow();
//设置解屏密码
dpm.resetPassword("123", 0);
卸载应用程序
激活了设备策略的应用不可直接卸载,必须先取消设备策略 也可用代码卸载ComponentName cn = new ComponentName(this, MyAdmin.class);
//可以移除管理员
dpm.removeActiveAdmin(cn);
Intent intent = new Intent();
intent.setAction("android.intent.action.UNINSTALL_PACKAGE");
intent.addCategory("android.intent.category.DEFAULT");
intent.setData(Uri.parse("package:"+getPackageName()));
startActivity(intent);
本文标签: 数据
版权声明:本文标题:锁屏和清除数据 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1726300105a1065004.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论