DevicePolicyManager是android2.2(API8)之后开始提供的一个API,通过使用该API,可用实现对系统级设备的管理。通过使用DevicePolicyManager
可以实现锁屏,恢复出厂,清除数据等功能。
step 1:
获取一个系统服务
dpm = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
step 2:
继承DeviceAdminReceiver类
只要继承该类就可以,不需要重写父类的方法
public class MyAdmin extends DeviceAdminReceiver {
}
step3:
打开管理功能
ComponentName name = new ComponentName(this, MyAdmin.class);
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, name);
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, “权限已开启”);
startActivity(intent);
具体代码如下:
package com.zlb.lockscreen;
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;
public class MainActivity extends Activity {
DevicePolicyManager dpm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dpm = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
}
public void onclick(View view) {
dpm.lockNow();
dpm.resetPassword("123", 0);
// 清除SD卡数据
// dpm.wipeData(DevicePolicyManager.WIPE_EXTERNAL_STORAGE);
// 恢复出厂设置
// dpm.wipeData(0);
finish();
}
public void open(View view) {
ComponentName name = new ComponentName(this, MyAdmin.class);
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, name);
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "权限已开启");
startActivity(intent);
}
public void uninstall(View view){
ComponentName name = new ComponentName(this, MyAdmin.class);
dpm.removeActiveAdmin(name);
Intent intent=new Intent();
intent.addCategory("android.intent.category.DEFAULT");
intent.setAction(Intent.ACTION_DELETE);
intent.setData(Uri.parse("package:"+getPackageName()));
startActivity(intent);
}
}