Android设备管理器

关于这个东西有神魔用,我现在只知道一个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>

我也只用过   <reset-password />  <force-lock />  <wipe-data /> 这三个功能

关于如何使用?这里写个步骤会看的简单一点:

   First, 整一个类继承 DeviceAdminReceiver ,DeviceAdminReceiver是个广播接收者(看name应该也能猜出吧)

   Second, 在清单文件中注册自己刚刚建立的广播接收者,在注册时要注意在 meta-data 中要写入一个xml 的文件其实就是我们上面的那个功能文件表

   Third,启动我们的设备管理器并使用相关的功能

下面看代码学习:

第一步:

这里我并未实现 DeviceAdminReceiver 的任何方法,但是我们仍然可以用上面列表中的功能

public class DeviceAdmin extends DeviceAdminReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
        super.onReceive(context, intent);
        
        System.out.println();
    }
}

第二部:

这里是一个 广播接收者的注册,注意红色的两行

       <receiver
            android:name="com.example.broadcastreceiver.DeviceAdmin"
            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>

第三步:

                    mDevicePolicyManager=(DevicePolicyManager)arg0.getSystemService(Context.DEVICE_POLICY_SERVICE);
                    mComponentName=new ComponentName(arg0, DeviceAdmin.class);


Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mComponentName); intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "设备管理器"); startActivityForResult(intent, REQUEST_CODE_ENABLE_ADMIN);

      使用功能

                    if (mDevicePolicyManager.isAdminActive(mComponentName)) {
                        mDevicePolicyManager.lockNow();
                        // 锁屏同时清除密码
                        System.out.println("LOCKSCREEN" + "我执行了");
                        mDevicePolicyManager.resetPassword("789", 0);
}

   if (mDevicePolicyManager.isAdminActive(mComponentName)) {
                        mDevicePolicyManager.lockNow();
                        mDevicePolicyManager.wipeData(0);
                    }

如上,简单的设备管理器功能就使用了。

关于设备管理器注册时不声明为android.app.action.DEVICE_ADMIN_ENABLED 也能够执行我会再写一篇查看

原文地址:https://www.cnblogs.com/zzl521/p/8945870.html