Android之 设备的超级管理员与一键锁屏之原理
来源:互联网 发布:网络视频监控 编辑:程序博客网 时间:2024/06/06 09:39
Android之 设备的超级管理员的介绍
Android 2.2引入了支持企业应用程序提供Android设备管理API。设备管理API提供了设备管理功能在系统水平。这些api允许您创建安全性敏感的应用程序是有用的在企业环境中,IT专业人员需要丰富的控制员工的设备。例如,内置Android电子邮件应用程序利用了新的api来改善交流的支持。通过电子邮件应用程序,交流管理员可以执行密码策略——包括字母数字密码或数字针——在设备。管理员也可以远程擦除(即恢复工厂默认值)丢失或被盗的手机。用户可以同步他们的电子邮件和日历数据交换。
现在举一个常见的例子来介绍一下DeviceAdminReceiver的用法:市面上的一键锁屏就用到了这个类:那我们就来看看一键锁屏是如何实现的。
第一步:先创建admin类继承DeviceAdminReceiver,里面的具体内容先不用实现
第二步:在清单文中重配置(参考官方文档)
<receiver android:name="com.cca.yijian.Admin" 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>
在这里我们引用了一个布局文件device_admin_sample.xml,所以
还要新建一个 res目录下xml文件夹并新建device_admin_sample.xml:
声明中使用的安全策略的元数据提供了特定于设备管理员的附加信息,可通过DeviceAdminInfo类进行解析查看,以下为device_admin_sample.xml:的内容
<device-admin xmlns:android="http://schemas.android.com/apk/res/android"> <uses-policies> <limit-password /> <watch-login /> <reset-password /> <force-lock /> <wipe-data /> <expire-password /> <encrypted-storage /> <disable-camera /> </uses-policies> </device-admin>
第三步:在主活动中书写关键代码
1、在主布局中添加一个按钮;点击按钮进行一键锁屏:
public void lockscreen(View view){ DevicePolicyManager dpm= (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE); ComponentName who=new ComponentName(this, Admin.class); if(dpm.isAdminActive(who)){ //重置密码 //dpm.resetPassword("123", 0); //清除sd卡数据 //dpm.wipeData(DevicePolicyManager.WIPE_EXTERNAL_STORAGE); //锁频 dpm.lockNow(); finish(); }else{ Toast.makeText(this, "请先激活应用程序", 0).show(); } }
为了给用户一个友好的提示,在布局中再来一个按钮“激活应用程序”
public void JiHuoManager(View view){ Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); ComponentName who=new ComponentName(this, Admin.class); intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, who); intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,"请大家赶紧去激活程序吧,首次激活 有大礼包!"); startActivity(intent); }
到这里用户可以进行激活应用程序了,激活之后可以使用一键锁屏了,不过用户以后要是不想用这个软件了,却发现卸载不了这个软件,水平又不高。所以为了良好的用户体验,在布局下方再来一个按钮:卸载应用 ,点击按钮卸载应用程序
public void deleteLockScreen(View view){ DevicePolicyManager dpm=(DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE); ComponentName who=new ComponentName(this, Admin.class); dpm.removeActiveAdmin(who); Intent intent=new Intent(); intent.setAction(Intent.ACTION_DELETE); intent.setData(Uri.parse("package:"+getPackageName())); startActivity(intent); }
这时,应用就完善了。
- Android之 设备的超级管理员与一键锁屏之原理
- Android设备超级管理员
- Android超级管理员,实现一键锁屏等等
- linux设备模型之 kobject原理与实例分析
- linux设备驱动模型之 kset原理与实例分析
- Linux设备驱动模型之kobject原理与实例分析
- linux设备模型之 kobject原理与实例分析
- linux设备驱动模型之 kset原理与实例分析
- Android系统移植与调试之------->如何修改Android设备存储盘符名称与Android设备的型号
- Android系统移植与调试之------->如何修改Android设备存储盘符名称与Android设备的型号
- Android逆向之DcseTBS获取设备ID原理
- [Android基础知识] 之十一: View类的原理与使用
- Android之设备加密
- Android入门之支持不同的设备
- linux设备驱动模型之 device(设备)原理与实例分析
- linux设备驱动模型之 device(设备)原理与实例分析
- Android之反射机制实现与原理
- Android之SharedPreferences详解与原理分析
- 同步与异步的概念
- 数据库事务
- 关于各种字符数组及指针的小研究
- 54.购物流程(1)---simple product
- sizeof()和strlen()的区别与联系
- Android之 设备的超级管理员与一键锁屏之原理
- android 获取手机联系人
- CSDN-markdown编辑器语法
- String,List,迭代,set
- 日志服务与日志分析工具
- PHPCMS V9 搜索功能
- 从OpenAI中看马斯克开放人工智能研究的野心(来自连线杂志)
- Android三级缓存
- Spring加载jar包中的文件