android 获取超级管理员权限,进行锁屏、恢复出厂设置

获取超级管理员权限步骤:

1.创建 MyAdmin 的广播接受者 继承 DeviceAdminReceiver

如:

package cn.itcast.lockscreen;
import android.app.admin.DeviceAdminReceiver;
public class MyAdmin extends DeviceAdminReceiver {
}


配置如下:

<receiver android:name=".MyAdmin">
<meta-data android:name="android.app.device_admin"
android:resource="@xml/my_admin" />
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>

</receiver>


添加Xml文件:
my_admin.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 />
        </uses-policies>
</device-admin>


2.获取IDevicePolicyManager

Method method = Class.forName("android.os.ServiceManager")
.getMethod("getService", String.class);
IBinder binder = (IBinder) method.invoke(null,
new Object[] { Context.DEVICE_POLICY_SERVICE });
mService = IDevicePolicyManager.Stub.asInterface(binder);

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

}


示例代码:

LockscreenActivity.java:

package cn.itcast.lockscreen;

import android.app.Activity;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

/**
 * device admin : 获取设备的超级管理员权限
 * 
 * @author zehua
 * 
 */
public class LockscreenActivity extends Activity implements OnClickListener {
	private Button bt_lock;
	private Button bt_wipe;
	DevicePolicyManager manager;
	ComponentName mAdminName;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		bt_lock = (Button) this.findViewById(R.id.button1);
		bt_wipe = (Button) this.findViewById(R.id.button2);
		bt_lock.setOnClickListener(this);
		bt_wipe.setOnClickListener(this);
		// 获取IDevicePolicyManager
		manager = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
		// 注册广播接受者为admin设备
		mAdminName = new ComponentName(this, MyAdmin.class);
		if (!manager.isAdminActive(mAdminName)) {
			Intent intent = new Intent(
					DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
			intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mAdminName);
			startActivity(intent);
		}
	}

	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.button1: // 锁屏
			manager.resetPassword("123", 0);
			manager.lockNow();
			// manager.removeActiveAdmin(mAdminName);
			break;

		case R.id.button2: // 重置手机为出厂模式//外部数据不会被删除
			manager.wipeData(0);
			break;
		}

	}
}
MyAdmin.java:

package cn.itcast.lockscreen;

import android.app.admin.DeviceAdminReceiver;

public class MyAdmin extends DeviceAdminReceiver {

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值