可以从非管理员应用调用 DevicePolicyManager.lockNow() 吗?

Can DevicePolicyManager.lockNow() be called from a non-admin app?

这些文件记录了来自管理员应用的 lockNow() 的使用。

https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#lockNow(int)

http://blogs.quovantis.com/android-device-administration-apis/

基本流程是:

  1. 创建 DeviceAdminReceiver

  2. 在清单中注册接收器,并给它 DEVICE_ADMIN_ENABLED 操作

  3. 在 xml 文件中声明安全策略

  4. 在您的 onCreate() 方法中初始化一个 DevicePolicyManager 对象

  5. 呼叫DevicePolicyManager.lockNow()

而且效果很好。但是,我希望能够在不让我的应用程序成为管理员的情况下锁定屏幕,也许通过调用 lockNow() 作为隐式意图。这可能吗?

只有拥有适当权限的设备管理员才能调用 API。

鉴于此,您必须:

  1. 创建一个作为设备管理员的应用程序,具有 USES_POLICY_FORCE_LOCK 权限并根据您选择的意图触发。
  2. 将您现有的应用设置为具有 USES_POLICY_FORCE_LOCK 权限的设备管理员。
  3. 查找符合这些要求的现有应用。但是我一个都不熟悉