1.创建一个类继承DeviceAdminReceiver

2.配置设备管理器广播

3.在res目录下新建device_admin_sample.xml

4.通过创建 DevicePolicyManager ,开启一键锁屏和清除数据功能

1.创建一个类继承DeviceAdminReceiver

/**
 * 创建一个类继承DeviceAdminReceiver
 * @author Administrator
 *
 */
public class MyAdmin extends DeviceAdminReceiver {
}



---------------------------------------------------------------------------------------------------

2.配置设备管理器广播

    <!--设备管理员激活配置的广播接收者  -->
        < receiver
            android:name = "com.itheima.lock.MyAdmin"
            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 >
       
        

-----------------------------------------------------------------------------------------

3.在res/xml目录下新建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 >




-----------------------------------------------------------------------------------

4.通过创建 DevicePolicyManager ,开启一键锁屏和清除数据功能

public class MainActivity extends Activity {
       @Override
       protected void onCreate(Bundle savedInstanceState) {
             super .onCreate(savedInstanceState);
            setContentView(R.layout. activity_main );
            
            
             //点击应用图标开启锁屏功能
             /*DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
            dpm.lockNow();
            finish();*/
      }
       /**
       * 一键锁屏
       * @param view
       */
       public void click(View view) {
            DevicePolicyManager dpm = (DevicePolicyManager) getSystemService( DEVICE_POLICY_SERVICE );
             // 判断是否开启了管理员
            ComponentName who = new ComponentName( this , MyAdmin. class );
             if (dpm.isAdminActive(who)) {
                  dpm.lockNow();
            } else {
                  active(view);
            }
             // dpm.wipeData(0);    //清除手机数据
      }
       /**
       * 卸载一键锁屏
       * @param view
       */
       public void uninstall(View view) {
             // 1.首先取消设备管理员的激活.
            DevicePolicyManager dpm = (DevicePolicyManager) getSystemService( DEVICE_POLICY_SERVICE );
            ComponentName who = new ComponentName( this , MyAdmin. class );
            dpm.removeActiveAdmin(who);
             // <action android:name="android.intent.action.VIEW" />
             // <action android:name="android.intent.action.DELETE" />
             // <category android:name="android.intent.category.DEFAULT" />
             // <data android:scheme="package" />
            Intent intent = new Intent();
            intent.setAction( "android.intent.action.DELETE" );
            intent.addCategory( "android.intent.category.DEFAULT" );
            intent.setData(Uri. parse( "package:" + getPackageName()));
            startActivity(intent);
      }
       /**
       * 激活一键锁屏
       * @param view
       */
       public void active(View view) {
            Intent intent = new Intent(DevicePolicyManager. ACTION_ADD_DEVICE_ADMIN );
            ComponentName who = new ComponentName( this , MyAdmin. class );
            intent.putExtra(DevicePolicyManager. EXTRA_DEVICE_ADMIN , who);
            intent.putExtra(DevicePolicyManager. EXTRA_ADD_EXPLANATION ,
                         "快开启设备管理员吧,开启了才能一键锁屏,才能看美女" );
            startActivity(intent);
            
//          PowerManager pm =(PowerManager) getSystemService(POWER_SERVICE);
//          WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE, "haha");
      }
      
       /**
       * 一键密码锁屏
       * @param view
       */
       public void setPassword(View view){
            DevicePolicyManager dpm = (DevicePolicyManager) getSystemService( DEVICE_POLICY_SERVICE );
            dpm.resetPassword( "123" , 0);
            dpm.lockNow();
      }
      
       /**
       * 清除锁屏密码
       * @param view
       */
       public void cleanPassword(View view){
            DevicePolicyManager dpm = (DevicePolicyManager) getSystemService( DEVICE_POLICY_SERVICE );
            dpm.resetPassword( "" , 0);
      }
}


 
 
 
 
 

3.1 设备管理员 一键锁屏相关推荐

  1. Android之 设备的超级管理员与一键锁屏之原理

    Android之 设备的超级管理员的介绍 Android 2.2引入了支持企业应用程序提供Android设备管理API.设备管理API提供了设备管理功能在系统水平.这些api允许您创建安全性敏感的应用 ...

  2. (安卓)一键锁屏 ---亲测!

    一键锁屏的实现原理:当按锁屏键的时候,会发出一个广播,当用户界面接收到一个广播的时候就可以实现锁屏.而广播的发送是我们调用DevicePolicyManager(设备管理接收者)中的lockNow() ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. “分布式哈希”和“一致性哈希”的概念与算法实现
  2. 作物驯化与人类的生活
  3. alfs学习笔记-自动化构建lfs系统
  4. php图文消息带代码详细注释,微信发送图文消息代码整理
  5. 安装 | Windows 10下基于Anaconda平台的TensorFlow详细安装步骤
  6. ORACLE TEXT LEXER PREFERENCE(三)
  7. P2714-四元组统计【数论,容斥】
  8. PAT1103 Integer Factorization (30)(DFS:回溯)
  9. selenium webdriver 学习总结-元素定位
  10. redhat7linux防火墙开放端口,Redhat7 firewall(防火墙)
  11. 基于python mediapipe的视频或者图片更换背景
  12. 关于ubuntu上,usb设备编号
  13. 在openSUSE下使用Snapper实现快照…
  14. 小米10等UFS字库备份与基带分区说明
  15. h5在twitter里登陆功能使用体验
  16. 系统的软中断CPU使用率升高,该怎么办?
  17. jre环境变量配置(jre环境变量配置)
  18. 《MySQL数据库》之练习表数据:emp表与dept表的脚本整理
  19. Unity 开关门脚本
  20. 电子计算机技术在60多年中,下列()部件可构成计算机的主机。

热门文章

  1. 木偶然-2013.7.28
  2. PHP发送带附件的电子邮件,php中PHPMailer发送带附件的电子邮件方法_PHP教程
  3. php+获取post提交,php处理json数据(从服务器获取,post提交)
  4. uniapp3.8不支持鸿蒙2.0了
  5. Kotlin(3)-协程和操作符重载,Java程序员秋招三面蚂蚁金服
  6. c#addrange_清单 .AddRange()方法与C#中的示例
  7. 央视春晚,一副好牌,却被百度打的稀烂!
  8. shell脚本—case用法
  9. 群辉Docker 下载仓库镜像提示失败 解决办法
  10. 《全网最强》详解机器学习分类算法之决策树(附可视化和代码)