可以从非管理员应用程序调用 DevicePolicyManager.lockNow() 吗?
Posted
技术标签:
【中文标题】可以从非管理员应用程序调用 DevicePolicyManager.lockNow() 吗?【英文标题】:Can DevicePolicyManager.lockNow() be called from a non-admin app? 【发布时间】:2017-07-11 16:03:52 【问题描述】:这些记录了来自管理员应用程序对lockNow()
的使用。
https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#lockNow(int)
http://blogs.quovantis.com/android-device-administration-apis/
基本流程是:
创建DeviceAdminReceiver
在清单中注册接收器,并为其提供DEVICE_ADMIN_ENABLED
操作
在 xml 文件中声明安全策略
在 onCreate()
方法中初始化 DevicePolicyManager
对象
致电DevicePolicyManager.lockNow()
而且效果很好。但是,我希望能够在不使我的应用程序成为管理员的情况下锁定屏幕,也许可以通过调用lockNow()
作为隐含意图。这可能吗?
【问题讨论】:
【参考方案1】:只有具有正确权限的设备管理员才能调用该 API。
鉴于此,您必须:
-
创建一个具有USES_POLICY_FORCE_LOCK 权限的设备管理员应用,并根据您选择的意图触发。
使您现有的应用成为具有USES_POLICY_FORCE_LOCK 权限的设备管理员。
查找具有这些要求的现有应用程序。但我一个都不熟悉。
【讨论】:
以上是关于可以从非管理员应用程序调用 DevicePolicyManager.lockNow() 吗?的主要内容,如果未能解决你的问题,请参考以下文章
从非 Fragment/Activity 类调用 registerForActivityResult