Android要求超级用户删除,修改或读取根目录中除了只读系统之外的任何内容.
但是,我注意到即使没有root设备,一些应用程序也可以利用这些进程.例如,Norton能够在非root电话上进行设备擦除.有没有办法授予我的应用程序类似的访问权限?
ben*_*n75 11
具有管理员权限的应用程序可以使用设备管理API.此API提供擦除设备的功能.
使用它,它不需要任何超级用户权限,它只需要设备管理员权限.
总结如何使用设备管理API:
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
<uses-policies>
<wipe-data />
</uses-policies>
</device-admin>
Run Code Online (Sandbox Code Playgroud)
您需要实现一个DeviceAdminReceiver来响应您的应用感兴趣的各种管理事件.(如果您只对擦除设备感兴趣,那么空实现就足够了)(有关如何设置此接收器的更多详细信息:此处)
您需要BIND_DEVICE_ADMIN权限
在某些时候(可能在启动时),您的应用必须触发ACTION_ADD_DEVICE_ADMIN,要求用户向您的应用授予"设备管理权限".(一旦授予这些权利,就没有理由再次询问它们.用户始终可以从"设置"应用中取消授予这些权限)
当您的设置正确时(如果用户授予您的应用程序的设备管理员权限),您可以调用DevicePolicyManager:
DevicePolicyManager devicePolicyManager = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
devicePolicyManager.wipeData(0);
Run Code Online (Sandbox Code Playgroud)
请注意,无法卸载具有设备管理员权限的应用.用户需要手动删除这些权限(使用"设置"应用),然后才能卸载它们.
| 归档时间: |
|
| 查看次数: |
2506 次 |
| 最近记录: |