一:设备管理器介绍:
Android 2.2 SDK提供了一个可管理和操作设备的API叫DevicePolicyManager,
使用这个API你可以接管手机的应用权限,
对手机做出很多大胆的操作,
比如锁屏、恢复出厂设置、设置密码、强制清除密码,修改密码、设置屏幕灯光渐暗时间间隔等操作。
二:设备管理器创建
1.要调用DevicePolicyManager 必须有个设备管理器admin,
那么第一步创建一个MyAdmin,必须继承DeviceAdminReceiver,
不用重写什么方法,
public class MyAdmin extends DeviceAdminReceiver {
//showToast方法方便查看方法调用情况并提示
private void showToast(Context context, String msg) {
Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
}
@Override
/**
R.string.devices_onEnabled=""
*/
public void onEnabled(Context context, Intent intent) {
showToast(context, "开启设备管理器");
}
@Override
public CharSequence onDisableRequested(Context context, Intent intent) {
return "警告禁止用户的请求";
}
@Override
public void onDisabled(Context context, Intent intent) {
showToast(context, "设备管理器关闭"));
}
@Override
public void onPasswordChanged(Context context, Intent intent) {
showToast(context, "密码改变"));
}
}
2.这是个广播类,必须注册,
解释:
Android:name
你的Admin全名
Android:description
可以自定义的区域,”比如我是牛逼的设备管理器”
android:permission="android.permission.BIND_DEVICE_ADMIN"
权限,不必多说
设备管理器有哪些功能
res下建立一个XML文件夹,
下面建立一个.xml文件,配置设备管理器的功能device_admin_sample.xml
这是所有权限,需要哪个留哪个即可
比如我要清除数据
device_admin_sample.xml,配置文件.xml文件名称,随意定
3:现在你就能在手机中看到你定义的设备管理器了
设置–安全–设备管理器
4:设备管理器开启
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDeviceAdminSample); intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, mActivity.getString(R.string.add_admin_extra_app_text)); startActivity(intent, REQUEST_CODE_ENABLE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, mActivity.getString(R.string.add_admin_extra_app_text));
第二个
putExtra,value 可以自定义,放你放的文字吧!
注意:设备管理器开启之后才能执行相应功能
5.
管理-设备管理器:
DevicePolicyManager
DevicePolicyManager mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
Context.DEVICE_POLICY_SERVICE
是个常量
6
:判断设备管理器是否开启方法:
:判断设备管理器是否开启方法:
ComponentName who=new ComponentName(context, MyAdmin.class);
//判断设备管理器状态
boolean isEnable=mDPM.isAdminActive(who);
7:清除数据
mDPM.wipeData(0);
8:锁屏
mDPM.lockNow();