adb dpm set-device-owner 在 android studio 之外安装时不起作用
adb dpm set-device-owner not working when installed outside of android studio
我在尝试在我的 android 设备上设置设备所有者时遇到问题。如果我通过点击播放按钮从 android 工作室将应用程序安装到物理设备上,我可以使用 adb shell dpm set-device-owner package/.receiver
添加和删除设备所有者而不会出现任何问题。我可以在 android studio 中或通过 cmd 执行此操作。
当我使用 apk 安装应用程序并在 android studio 之外手动安装或使用 adb 时,我无法再设置设备所有者。我总是收到错误 Not allowed to set the device owner because there are already some accounts on the device
这是没有意义的,因为设备上没有帐户。我可以回到 android studio,在上面安装应用程序,然后再次 运行 adb 命令,无需执行任何其他操作就可以正常工作。
我在这里迷路了,因为那里的错误似乎不正确,但我不知道为什么从 android studio 之外的 apk 安装不起作用。
编辑:一些笔记
- 我没有使用模拟器进行测试。当我说从 android studio 安装时,我的意思是直接安装到 phone,而不是模拟器
- 我有正确指向 xml 的清单
定义
- 从 android studio 和
设置设备所有者,我获得了所有预期的权限
- 当我从输出 apk 安装时,我无法再设置设备
所有者(以前被清除,甚至尝试重新恢复
phone。帐户设置为空,未列出任何帐户)
“不允许设置设备所有者,因为设备上已有一些帐户”是指 Settings > Passwords & accounts
中列出的任何帐户。这可能包括:
- Google
- Gmail
- 展望
- 信号
- Google 双人
- 密码 auto-fill 服务(Bitwarden、Lastpass 等)
您必须从 Settings > Passwords & accounts
页面中删除所有这些,然后才能设置 device/profile 所有者。
更新:您可以通过查看 adb logcat -b system
来检查正在发生的具体情况。请参阅 DevicePolicyManagerService
中的 hasIncompatibleAccountsOrNonAdbNoLock() 以获取有关要查找哪些日志的提示。
替代答案
如果您使用的 OEM/device 有一些特别之处(可能 Sonim 不允许安装 non-testOnly DPM 应用程序),您可以尝试安装“真实”的 DPM 应用程序方式,通过恢复出厂设置欢迎屏幕。
我们终于找到了这个问题的原因。当 运行 来自 android studio 的应用程序时,它会将 testOnly 标志设置为 true,这样做允许某些通常不会通过的事情被允许。因此,在 android 工作室外部进行测试之前,我们根本不知道存在问题。
此问题:SIM卡在com.android.sim包下添加了一个账户,但在账户设置中没有显示。所以对我们来说 phone 似乎没有帐户,因为它是隐藏的。
取出SIM卡后,我们终于可以设置设备属主了。
感谢所有提出建议的人。
我在尝试在我的 android 设备上设置设备所有者时遇到问题。如果我通过点击播放按钮从 android 工作室将应用程序安装到物理设备上,我可以使用 adb shell dpm set-device-owner package/.receiver
添加和删除设备所有者而不会出现任何问题。我可以在 android studio 中或通过 cmd 执行此操作。
当我使用 apk 安装应用程序并在 android studio 之外手动安装或使用 adb 时,我无法再设置设备所有者。我总是收到错误 Not allowed to set the device owner because there are already some accounts on the device
这是没有意义的,因为设备上没有帐户。我可以回到 android studio,在上面安装应用程序,然后再次 运行 adb 命令,无需执行任何其他操作就可以正常工作。
我在这里迷路了,因为那里的错误似乎不正确,但我不知道为什么从 android studio 之外的 apk 安装不起作用。
编辑:一些笔记
- 我没有使用模拟器进行测试。当我说从 android studio 安装时,我的意思是直接安装到 phone,而不是模拟器
- 我有正确指向 xml 的清单 定义
- 从 android studio 和 设置设备所有者,我获得了所有预期的权限
- 当我从输出 apk 安装时,我无法再设置设备 所有者(以前被清除,甚至尝试重新恢复 phone。帐户设置为空,未列出任何帐户)
“不允许设置设备所有者,因为设备上已有一些帐户”是指 Settings > Passwords & accounts
中列出的任何帐户。这可能包括:
- Gmail
- 展望
- 信号
- Google 双人
- 密码 auto-fill 服务(Bitwarden、Lastpass 等)
您必须从 Settings > Passwords & accounts
页面中删除所有这些,然后才能设置 device/profile 所有者。
更新:您可以通过查看 adb logcat -b system
来检查正在发生的具体情况。请参阅 DevicePolicyManagerService
中的 hasIncompatibleAccountsOrNonAdbNoLock() 以获取有关要查找哪些日志的提示。
替代答案
如果您使用的 OEM/device 有一些特别之处(可能 Sonim 不允许安装 non-testOnly DPM 应用程序),您可以尝试安装“真实”的 DPM 应用程序方式,通过恢复出厂设置欢迎屏幕。
我们终于找到了这个问题的原因。当 运行 来自 android studio 的应用程序时,它会将 testOnly 标志设置为 true,这样做允许某些通常不会通过的事情被允许。因此,在 android 工作室外部进行测试之前,我们根本不知道存在问题。
此问题:SIM卡在com.android.sim包下添加了一个账户,但在账户设置中没有显示。所以对我们来说 phone 似乎没有帐户,因为它是隐藏的。
取出SIM卡后,我们终于可以设置设备属主了。
感谢所有提出建议的人。