首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我的应用程序如何访问非根设备上的管理级权限?

我的应用程序如何访问非根设备上的管理级权限?
EN

Stack Overflow用户
提问于 2014-09-17 20:07:08
回答 1查看 3.3K关注 0票数 5

Android需要超级用户来删除、修改或读取根目录中的任何内容,只有系统是只读的。

然而,我注意到,即使没有根设备,一些应用程序也能够利用这些过程。例如,诺顿能够在没有根的手机上做设备擦拭。是否有方法授予我的应用程序类似的访问权限?

EN

回答 1

Stack Overflow用户

发布于 2014-09-17 20:38:51

具有管理员权限的应用程序可以使用设备管理API。这个API提供了擦除设备的能力。

使用它,它不需要任何超级用户权限,它只需要设备管理员权限.

总结如何使用Device Administration API

  1. 您需要一个资源文件声明应用程序所需的策略。

代码语言:javascript
运行
复制
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
  <uses-policies>
    <wipe-data />
  </uses-policies>
</device-admin>
  1. 您需要实现一个DeviceAdminReceiver来对应用程序感兴趣的各种管理事件做出反应。(如果您只对擦除设备感兴趣,那么一个空的实现就足够了)(关于如何设置这个接收器的更多细节:here)
  2. 你需要ADMIN的许可
  3. 在某个时候(可能在启动时),您的应用程序必须触发ADMIN,以请求用户授予您的应用程序“设备管理权限”。(一旦这些权利被授予,就没有理由再问这些权利。用户总是能够从Settings应用程序中取消授予这些权限)
  4. 当设置正确时(如果用户将设备管理权限授予应用程序),则可以调用DevicePolicyManager:

代码语言:javascript
运行
复制
DevicePolicyManager devicePolicyManager = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
devicePolicyManager.wipeData(0);

请注意,具有设备管理员权限的应用程序不能卸载。用户需要手动删除这些权限(使用设置应用程序),然后才能卸载。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25899443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档