一键锁屏和清除数据

//清单文件
	<receiver
		android:name=".AdminReceiver"
		android:description="@string/sample_device_admin_description"
		android:label="@string/sample_device_admin"
		android:permission="android.permission.BIND_DEVICE_ADMIN" >
		<meta-data
			android:name="android.app.device_admin"
			android:resource="@xml/device_admin_sample" />

		<intent-filter>
			<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
		</intent-filter>
	</receiver>
注意:device_admin_sample.xml需要自己创建,里面申明该程序有的一些权限,存放于res/xml文件夹中

//device_admin_sample
	<?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/>
			<wipe-data/>
			<expire-password/>
			<encrypted-storage/>
			<disable-camera/>
		</uses-policies>
	</device-admin>

//自定一个DeviceAdminReceiver的子类AdminReceiver,然后什么都不实现

//Activity中:
	private DevicePolicyManager mDPM;//设备策略管理器
	private ComponentName mDeviceAdminSample;//设备组件名,用于申请管理权限
	
	mDPM = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);// 获取设备策略服务
	mDeviceAdminSample = new ComponentName(this, AdminReceiver.class);// 设备管理组件
	
	
	/**
	 * 一键卸载
	 * @param view
	 */
	public void unInstall(View view){
		mDPM.removeActiveAdmin(mDeviceAdminSample);//取消激活
		
		//卸载程序
		Intent intent = new Intent(Intent.ACTION_VIEW);
		intent.addCategory(Intent.CATEGORY_DEFAULT);
		intent.setData(Uri.parse("package:"+getPackageName()));
		startActivity(intent);
	}
	
	/**
	 * 一键清除数据
	 * @param view
	 */
	public void clearData(View view){
		if (mDPM.isAdminActive(mDeviceAdminSample)) {// 判断设备管理器是否已经激活
			mDPM.wipeData(0);//清除数据,恢复出厂设置
			//0表示只清除手机本身
			//WIPE_EXTERNAL_STROAGE表示把SD卡一起清除
		} else {
			Toast.makeText(this, "必须先激活设备管理器", 0).show();
		}
	}

	/**
	 * 一键锁屏
	 * 
	 * @param view
	 */
	public void lockscreen(View view) {
		if (mDPM.isAdminActive(mDeviceAdminSample)) {// 判断设备管理器是否已经激活
			mDPM.lockNow();// 立即锁屏
			mDPM.resetPassword("123456", 0);
			// flags May be 0 or RESET_PASSWORD_REQUIRE_ENTRY.
			// 0表示不允许后台修改密码
			// RESET_PASSWORD_REQUIRE_ENTRY表示允许其他应用在后台修改密码

		} else {
			Toast.makeText(this, "必须先激活设备管理器", 0).show();
		}
	}

	/**
	 * 激活设置管理器
	 * 
	 * @param view
	 */
	public void activeAdmin(View view) {
		Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
		intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
				mDeviceAdminSample);
		intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
				"这是申请管理器权限的提示说明");
		startActivity(intent);
	}
	
	

	
注意:如果无法删除该程序,请到设置-安全-设备管理器,把该程序的权限去掉

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值