您的位置:首页 > 移动开发 > Android开发

DevicePolicyManager类的使用

2016-04-30 14:47 393 查看
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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android