注册一个Receiver
  1. <receiver   
  2.    android:name="LockReceiver"   
  3.    android:description="@string/app_name"   
  4.    android:label="@string/app_name"   
  5.    android:permission="android.permission.BIND_DEVICE_ADMIN" >   
  6.    <meta-data   
  7.        android:name="android.app.device_admin"   
  8.        android:resource="@xml/lock_screen" />   
  9.      
  10.    <intent-filter>   
  11.        <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />   
  12.    intent-filter>   
  13. receiver>
配置权限文件lock_screen.xml,将文件放置在/res/xml/下
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <device-admin xmlns:android="http://schemas.android.com/apk/res/android" >  
  3.   
  4.     <uses-policies>  
  5.   
  6.           
  7.         <force-lock />  
  8.   
  9.           
  10.         <wipe-data />  
  11.   
  12.           
  13.         <reset-password />  
  14.   
  15.           
  16.         <limit-password />  
  17.   
  18.           
  19.         <watch-login />  
  20.               
  21.     uses-policies>  
  22.   
  23. device-admin> 
实现Receiver
  1. package com.huron.xx;  
  2.   
  3. import android.app.admin.DeviceAdminReceiver;  
  4. import android.content.Context;  
  5. import android.content.Intent;  
  6.   
  7. public class LockReceiver extends DeviceAdminReceiver {  
  8.   
  9.     @Override  
  10.     public void onReceive(Context context, Intent intent) {  
  11.         super.onReceive(context, intent);  
  12.         System.out.println("onreceiver");  
  13.     }  
  14.   
  15.     @Override  
  16.     public void onEnabled(Context context, Intent intent) {  
  17.         System.out.println("激活使用");  
  18.         super.onEnabled(context, intent);  
  19.     }  
  20.   
  21.     @Override  
  22.     public void onDisabled(Context context, Intent intent) {  
  23.         System.out.println("取消激活");  
  24.         super.onDisabled(context, intent);  
  25.     }  
  26.   

获取激活状态
public class AdminActiveWrapper {   DevicePolicyManager dpm;   ComponentName adminComponent;   private Activity context = null;   public void init(Activity ctx) {      context = ctx;      dpm = (DevicePolicyManager) context            .getSystemService(Context.DEVICE_POLICY_SERVICE);      adminComponent = new ComponentName(context, LockReceiver.class);   }   public boolean isEnabled(){      return dpm.isAdminActive(adminComponent);   }   public void checkAndEnableAdmin() {      if (!dpm.isAdminActive(adminComponent)) {         Intent intent = new Intent(               DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);//       intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);         intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,               adminComponent);         intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,               context.getString(R.string.device_admin_hint));         context.startActivityForResult(intent, 0);      }   }}
public class S1Activity extends Activity {    @Override   protected void onActivityResult(int requestCode, int resultCode, Intent data) {      // TODO Auto-generated method stub      super.onActivityResult(requestCode, resultCode, data);      finish();   }   DevicePolicyManager dpm;    ComponentName adminComponent;       void checkAndEnableAdmin() {        if (!dpm.isAdminActive(adminComponent)) {            Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);            intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, adminComponent);            intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, this.getString(R.string.device_admin_hint));            startActivityForResult(intent, 0);        }        else {           finish();        }    }      @Override   protected void onCreate(Bundle savedInstanceState) {      super.onCreate(savedInstanceState);      setContentView(R.layout.activity_s1);      dpm = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);      adminComponent = new ComponentName(this, LockReceiver.class);              PermissionManager.upgradeRootPermission(getPackageCodePath());      checkAndEnableAdmin();   }}

<string name="device_admin_hint">删除硬件管理设备string><string name="device_admin_cancel">真的要删除该硬件设备管理吗?string><string name="device_admin_title">硬件设备管理string>



更多相关文章

  1. 开发Android应用程序来使用硬件访问服务
  2. Android密码账号功能
  3. Android:EditText设置密码可见与不可见
  4. Android核心分析 之三:手机之硬件形态
  5. [来自异次元] 选择适合自己的 Android (安卓) 手机 – 硬件篇
  6. [置顶] Android硬件抽象层模块编写规范
  7. 手机硬件形态
  8. Android 源码 图形系统之硬件渲染器绘制
  9. android arm64硬件实现加速crc32算法

随机推荐

  1. MySQL索引的各种类型
  2. 如何修改MySQL字符集
  3. 聊聊MySQL事务的特性和隔离级别
  4. MySQL GROUP_CONCAT限制解决方案
  5. MySQL 如何使用事务
  6. MySQL 数据库如何解决高并发问题
  7. MySQL 千万级数据量如何快速分页
  8. MySQL5.6升级5.7时出现主从延迟问题排查
  9. MySQL中文乱码问题解决方案
  10. MySQL 参数相关概念及查询更改方法