Sollyu

  • 捐赠
  • 关于
  1. 首页
  2. 软件开发
  3. 安卓
  4. 正文

Android设备管理器开发

2016年12月17日 6104点热度 2人点赞 0条评论

在开发设备管理器之前应该先了解一下什么是设备管理器,他的作用是什么。这里附上Android设备管理器的官方介绍, Device Administration

开发步骤

首先要在AndroidManifest.xml中添加下面的权限声明

<receiver android:name=".receiver.MainDeviceAdminReceiver" android:permission="android.permission.BIND_DEVICE_ADMIN">
    <meta-data android:name="android.app.device_admin" android:resource="@xml/devicepolicymanager_permission" />
    <intent-filter>
        <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
    </intent-filter>
</receiver>

其中引用了一个@xml/devicepolicymanager_permission,他的内容为

<?xml version="1.0" encoding="UTF-8"?>
<device-admin>
    <uses-policies>
        <force-lock/>
        <wipe-data/>
        <reset-password/>
        <limit-password/>
        <watch-login/>
    </uses-policies>
</device-admin>

同样AndroidManifest.xml的声明中有一个.receiver.MainDeviceAdminReceiver, 这个是一个继承于android.app.admin.DeviceAdminReceiver的因,同样要重新这个类。这里同样给出DeviceAdminReceiver的所有方法列表。

申请权限操作

在你的Activity的代码中填写下面这样的代码,用来申请设备管理器界面

Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, new ComponentName(activity, MainDeviceAdminReceiver.class));
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "我需要这样的权限");
activity.startActivityForResult(intent, REQUEST_DEVICE_ADMIN_CODE);

这时手机中会出现这样的界面提示:
设备管理器申请界面
当用户点击ACTIVATE会触发MainDeviceAdminReceiver中的onEnabled方法。同时在Activity的onActivityResult也会收到结果,这里给出我的检测代码:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == PhoneUtil.REQUEST_DEVICE_ADMIN_CODE) {
        if (resultCode != Activity.RESULT_OK) {
            // TODO: 用户确定授权
        } else {
            // TODO: 用户没有授权设备管理器
        }
    }
}

其他说明

当设备管理器一旦激活,软件就不能正常卸载,这里是不能卸载的界面
激活设备管理器后应用不能卸载

拓展阅读

  1. 编写一个无法卸载的App - 设备管理器漏洞
  2. Android极速开发之设备管理器(DevicePolicyManager)
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: Android
最后更新:2017年6月7日

sollyu

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

COPYRIGHT © 2021 sollyu.com. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

苏ICP备15007531号