DevicePolicyManager设备管理员相关
来源:互联网 发布:音频声道测试软件 编辑:程序博客网 时间:2024/05/10 01:14
在点击条目中开启以及结束设备管理者,来说明设备管理者的用法--Device(装置)Policy(政策)Manager(管理者)
要开启一个设备管理者有四个步骤:
(1)自定义一个Receiver(广播接收者),继承DeviceAdminReceiver;
(2)在AndroidManifest.xml(清单文件)注册设备管理员,注册一个服务
(3)在res文件夹下新建xml文件夹,申明此设备管理者的权限
(4)在点击事件的类中,获取DevicePolicyManager对象,调用DevicePolicyManager的方法
(1)自定义一个Receiver(广播接收者),继承DeviceAdminReceiver;
我们只需要使用父类的方法,创建一个类继承即可,不需要在类中实现方法
public class SjfdAdminReceiver extends DeviceAdminReceiver
(2)在AndroidManifest.xml(清单文件)注册设备管理员
根据模板代码,修改即可
<!-- 注册设备管理员 -->
<receiver
android:name="com.example.mobilesafe.receiver.SjfdAdminReceiver"
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>
--------------------
android:description="@string/sample_device_admin_description"
在res/values/string.xml文件中实现description(描述)对此设备管理员的描述
android:label="@string/sample_device_admin"
在res/values/string.xml文件中实现label(标题)对此设备管理员的标题
--------------------
(3)在res文件夹下新建xml文件夹,申明此设备管理者的权限
实现这行代码android:resource="@xml/device_admin_sample"
res/xml/device_admin_sample.xml
<?xml version="1.0" encoding="utf-8"?>
<device-admin xmlns:android="http://schemas.android.com/apk/res/android" >
<uses-policies>
<!-- 重置密码 -->
<reset-password />
<!-- 锁屏 -->
<force-lock />
<!-- 擦除数据 -->
<wipe-data />
</uses-policies>
</device-admin>
(4)在点击事件中,获取DevicePolicyManager对象,调用DevicePolicyManager的方法
//根据系统服务获取设备管理者对象
DevicePolicyManager mDpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
//关联我们自己写的内容提供者
ComponentName who = new ComponentName(this,SjfdAdminReceiver.class);
//判断设备管理器是否被激活,如果已经激活,点击需要关闭,否者操作相反
if(mDpm.isAdminActive(who)){
//已经激活,需要关闭
mDpm.removeActiveAdmin(who);
//改变点击条目的UI,将开关变为关的状态
mImgAdmin.setImageResource(R.drawable.admin_inactivated);
}else {
//没有激活,开启设备管理器的警告对话框
Intent intent = new Intent(
DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,who);
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
getString(R.string.add_admin_extra_app_text));
startActivityForResult(intent, REQUEST_CODE_ENABLE_ADMIN);
}
//在警告对话框选择OK或者CANCELED(取消)之后,将用户选择的结果获取,并做出UI(开关状态)的改变
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==REQUEST_CODE_ENABLE_ADMIN){
if(resultCode==Activity.RESULT_OK){
//选择了确认激活操作
//UI显示
mImgAdmin.setImageResource(R.drawable.admin_activated);
}else if(resultCode==Activity.RESULT_CANCELED){
//选择了确认激活操作
//UI显示
mImgAdmin.setImageResource(R.drawable.admin_inactivated);
}
}
}
要开启一个设备管理者有四个步骤:
(1)自定义一个Receiver(广播接收者),继承DeviceAdminReceiver;
(2)在AndroidManifest.xml(清单文件)注册设备管理员,注册一个服务
(3)在res文件夹下新建xml文件夹,申明此设备管理者的权限
(4)在点击事件的类中,获取DevicePolicyManager对象,调用DevicePolicyManager的方法
(1)自定义一个Receiver(广播接收者),继承DeviceAdminReceiver;
我们只需要使用父类的方法,创建一个类继承即可,不需要在类中实现方法
public class SjfdAdminReceiver extends DeviceAdminReceiver
(2)在AndroidManifest.xml(清单文件)注册设备管理员
根据模板代码,修改即可
<!-- 注册设备管理员 -->
<receiver
android:name="com.example.mobilesafe.receiver.SjfdAdminReceiver"
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>
--------------------
android:description="@string/sample_device_admin_description"
在res/values/string.xml文件中实现description(描述)对此设备管理员的描述
android:label="@string/sample_device_admin"
在res/values/string.xml文件中实现label(标题)对此设备管理员的标题
--------------------
(3)在res文件夹下新建xml文件夹,申明此设备管理者的权限
实现这行代码android:resource="@xml/device_admin_sample"
res/xml/device_admin_sample.xml
<?xml version="1.0" encoding="utf-8"?>
<device-admin xmlns:android="http://schemas.android.com/apk/res/android" >
<uses-policies>
<!-- 重置密码 -->
<reset-password />
<!-- 锁屏 -->
<force-lock />
<!-- 擦除数据 -->
<wipe-data />
</uses-policies>
</device-admin>
(4)在点击事件中,获取DevicePolicyManager对象,调用DevicePolicyManager的方法
//根据系统服务获取设备管理者对象
DevicePolicyManager mDpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
//关联我们自己写的内容提供者
ComponentName who = new ComponentName(this,SjfdAdminReceiver.class);
//判断设备管理器是否被激活,如果已经激活,点击需要关闭,否者操作相反
if(mDpm.isAdminActive(who)){
//已经激活,需要关闭
mDpm.removeActiveAdmin(who);
//改变点击条目的UI,将开关变为关的状态
mImgAdmin.setImageResource(R.drawable.admin_inactivated);
}else {
//没有激活,开启设备管理器的警告对话框
Intent intent = new Intent(
DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,who);
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
getString(R.string.add_admin_extra_app_text));
startActivityForResult(intent, REQUEST_CODE_ENABLE_ADMIN);
}
//在警告对话框选择OK或者CANCELED(取消)之后,将用户选择的结果获取,并做出UI(开关状态)的改变
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==REQUEST_CODE_ENABLE_ADMIN){
if(resultCode==Activity.RESULT_OK){
//选择了确认激活操作
//UI显示
mImgAdmin.setImageResource(R.drawable.admin_activated);
}else if(resultCode==Activity.RESULT_CANCELED){
//选择了确认激活操作
//UI显示
mImgAdmin.setImageResource(R.drawable.admin_inactivated);
}
}
}
0 0
- DevicePolicyManager设备管理员相关
- 2.定位、擦除数据、锁屏、激活设备管理员(LocationManager、DevicePolicyManager)
- Android 设备管理器(DevicePolicyManager)
- Android设备管理器——DevicePolicyManager
- Android设备管理器——DevicePolicyManager
- Android设备管理器——DevicePolicyManager
- Android设备管理器——DevicePolicyManager
- Android设备管理器——DevicePolicyManager
- 设备管理员
- 设备管理员
- 关于android的设备管理器-DevicePolicyManager(一)
- 关于android的设备管理器-DevicePolicyManager(二)
- DevicePolicyManagert设备管理员
- 3.1 设备管理员 一键锁屏
- 设备管理员功能介绍
- android_设备管理员
- 设备管理员套路
- oracle管理员相关问题
- Linux--CentOS
- Augular+Node+Python搭建网站的历程
- 积分图像(Integral Image)与积分直方图 (Integral Histogram)
- 从代理模式到Java动态代理
- 库函数与系统调用的区别
- DevicePolicyManager设备管理员相关
- 网络流24题3 最小路径覆盖问题
- 节点的网络拓扑距离
- POJ 2079 Triangle 已翻译
- removeAllViews()和removeAllViewsInLayout()之间的区别?
- MFC的消息映射
- 1470 Closest Common Ancestors(简单的LCA算法)
- Android学习之系统声音/大小修改及配置详解
- 编程生词汇编一