锁屏和清除数据

锁屏和清除数据需要的权限比较高,需要先激活设备管理器策略,使应用程序获得权限

激活设备管理策略

步骤:

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.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>

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);







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Barry__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值