Android之 设备的超级管理员的介绍

Android 2.2引入了支持企业应用程序提供Android设备管理API。设备管理API提供了设备管理功能在系统水平。这些api允许您创建安全性敏感的应用程序是有用的在企业环境中,IT专业人员需要丰富的控制员工的设备。例如,内置Android电子邮件应用程序利用了新的api来改善交流的支持。通过电子邮件应用程序,交流管理员可以执行密码策略——包括字母数字密码或数字针——在设备。管理员也可以远程擦除(即恢复工厂默认值)丢失或被盗的手机。用户可以同步他们的电子邮件和日历数据交换。

现在举一个常见的例子来介绍一下DeviceAdminReceiver的用法:市面上的一键锁屏就用到了这个类:那我们就来看看一键锁屏是如何实现的。

第一步:先创建admin类继承DeviceAdminReceiver,里面的具体内容先不用实现

第二步:在清单文中重配置(参考官方文档)

     <receiverandroid: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-dataandroid: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之 设备的超级管理员与一键锁屏之原理相关推荐

  1. Android - 定位方式,火星坐标系统,一键锁屏,字节Android高工面试

    private class MyLocationListener implements LocationListener{ //位置发生变化的时候 @Override public void onLo ...

  2. Android - 定位方式,火星坐标系统,一键锁屏,嵌入式android开发

    PointDouble result = mo.s2c(new PointDouble(113.9083f, 22.5854f)); 5.获取手机位置功能所需知识点 1.获取手机经纬度 2.转化为火星 ...

  3. 3.1 设备管理员 一键锁屏

    1.创建一个类继承DeviceAdminReceiver 2.配置设备管理器广播 3.在res目录下新建device_admin_sample.xml 4.通过创建 DevicePolicyManag ...

  4. android 一键锁屏和清除手机数据

    一键锁屏&清除数据_50 1.引入设备超级管理员(device admin) 2.看文档Develop-->API Guides--->Administration 如果你是一个企 ...

  5. Android激活设备管理器--一键锁屏

    激活设备管理器就是把系统的某些权力例如锁屏,链接蓝牙等功能交给某个应用来执行.也就是说,如果想要某个应用执行某些系统超级管理员才能执行的功能时,就需要让这个应用激活设备管理器.此时该应用就拿到了系统管 ...

  6. Android简易实战教程--第五话《开发一键锁屏应用》

    转载请注明出处:http://blog.csdn.net/qq_32059827/article/details/51860900 点击打开链接 Device Administration 对于这个应 ...

  7. Android Device Administration 设备管理器——实现一键锁屏

    Android Device Administration 设备管理器--实现一键锁屏 最近研究了一下安全这一块的内容,当然,我是比较水的,所以也拿不出什么好知识点,但是有一些冷门的东西我还是可以聊聊 ...

  8. 简单几步实现Android 一键锁屏,一键卸载程序,一键激活设备管理权限

    2019独角兽企业重金招聘Python工程师标准>>> 以下为官方的文档(本人能力有限,尝试着翻译下,有错请指出) 不想看文档可以直接拉到后面,代码将在后面贴出 Developing ...

  9. android实现一键锁屏

    最近想写一个一键锁屏功能的android小程序,找了很多网上的例子,也看了SDK文档,几乎所有的代码都大同小异,但是有很多人都会在调试的时候出现各种问题,大多数人的Logcat中都会出现:" ...

最新文章

  1. 织梦后台不显示验证码的解决
  2. 大型网站核心架构要素--扩展性
  3. 全球及中国智能电网产业十四五规划方向及投资决策建议报告2021年版
  4. [LeetCode] Invert Binary Tree - 二叉树翻转系列问题
  5. CSM管理系统_复选框删除多条记录
  6. python中如何打印阶梯_字符阶梯(python)
  7. Alamofire源码解读系列(七)之网络监控(NetworkReachabilityManager)
  8. C语言图形编程--俄罗斯方块制作(一)详解
  9. linux软件版本管理命令update-alternatives使用详解
  10. Spring Boot 整合 AWS S3协议 OSS功能 支持 七牛、阿里、Minio等一切支持S3协议的云厂商
  11. 【游戏开发】小白学Lua(上)
  12. MacOS Ventura 13.0 (22A380) 正式版带 OC 0.8.5 and winPE 双分区原版黑苹果镜像
  13. Python:类和文件操作
  14. DO接口测试工装研究
  15. 基于51单片机点阵汉字显示程序设计
  16. 画星c语言程序,用星号画了一个正五角星。
  17. 设计模式-适配器模式
  18. python 战棋游戏代码实现
  19. 企业发卡系统源码搭建多商户稳定运营版/商户自定义支付/支持API对接
  20. 计算机网络【Computer Networks】学习记录01

热门文章

  1. 软件工程毕业设计课题(61)微信小程序毕业设计JAVA旅游景区点评攻略小程序系统设计与实现
  2. LA-G241P REV1.0联想笔记本电路图
  3. SMBJ400A,单向400V高压瞬变电压抑制(TVS)二极管
  4. 供电局电力系统笔试题291道(二)
  5. 2764和6264地址范围
  6. 串连字符串strcat
  7. 基于avaSwing开发普通计算器程序 课程设计 大作业源码
  8. EF Core 关联数据
  9. mysql 一对多查询时,把多的一方整合到一的一方用逗号隔开
  10. 【转】openWRT摄像头选购