以编程方式将包设置为设备所有者

时间:2018-05-03 16:26:36

标签: android administrator owner

我知道命令"adb shell dpm set-device-owner pacakgename"

我想知道是否有一种方法可以在一个应用程序启动后以编程方式询问并设置设备所有者

基本上与之相反:

DevicePolicyManager.clearDeviceOwnerApp("com.package.something");

提前致谢!

3 个答案:

答案 0 :(得分:1)

如果设备上没有用户帐户或设备已植根,则只能设置设备所有者。这通常意味着您只能在出厂重置后立即设置设备所有者。您可以使用NFC配置(我从未这样做过)或在adb shell中设置设备所有者。 adb方法要求用户启用开发人员模式,将Android设备连接到计算机,然后在shell中键入命令。

成为设备所有者的伪代码:

if the app is not the device owner
  if there is a user account
    inform the user that the app cannot become the device owner
  else if the app is a device administrator
    instruct the user to run the adb command
  else
    request to become a device administrator

我的Device Owner应用是一个完整的工作示例,包括用户必须输入的命令是如何根据应用的包名生成的。

答案 1 :(得分:0)

我最近遇到了这个问题,我无法通过 adb 设置设备管理员,经过一番折腾之后,我找到了一种在 Android 9 上执行此操作的方法(它也可能适用于较低版本)。 我用的手机是小米MIX 3

  1. 恢复出厂设置
  2. 获得对开发者选项的访问权
  3. 在开发者选项中打开 USB 调试,此时您将被要求登录用户帐户,执行此操作。
  4. 在开发者选项中打开 USB 调试(安全设置)
  5. 在开发者选项中关闭关于高风险功能的通知
  6. 现在在设置中转到帐户选项卡并注销/删除以前添加的帐户。
  7. 将您的手机连接到 PC,授予调试权限
  8. 问题 adb shell dpm set-active-admin --user current package_name/device_admin_receiver
  9. adb shell dpm set-device-owner --user current package_name/device_admin_receiver

答案 2 :(得分:-1)

设备所有者只能在新设备设置期间设置,即在设备的初始设置期间。设备设置完成后,无法将其更改为其他应用程序。

更改它的唯一方法是在设置过程中恢复设备并分配新包。