我需要静默更新我的应用程序(如此处所述)。
所以我需要让我的应用程序成为手机 SAMSUNG S6 中的设备所有者。我通过 adb shell 命令使用 dpm 命令,因此我配置了我的设备(从 Settings->Accounts 中删除所有帐户),启用开发人员模式,启用调试,像往常一样安装我的应用程序(例如使用 Android Studio 安装它),然后运行命令:
adb shell dpm set-device-owner <PACKAGE-NAME>/.DeviceAdminComponent
但我得到下一个错误:
java.lang.IllegalStateException: Not allowed to set the device owner because there are already several users on the device
at android.os.Parcel.readException(Parcel.java:1701)
at android.os.Parcel.readException(Parcel.java:1646)
at android.app.admin.IDevicePolicyManager$Stub$Proxy.setDeviceOwner(IDevicePolicyManager.java:6123)
at com.android.commands.dpm.Dpm.runSetDeviceOwner(Dpm.java:148)
at com.android.commands.dpm.Dpm.onRun(Dpm.java:96)
at com.android.internal.os.BaseCommand.run(BaseCommand.java:51)
at com.android.commands.dpm.Dpm.main(Dpm.java:41)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:301)
这是一个非常奇怪的。如果我运行这个命令:
adb shell dpm set-profile-owner <PACKAGE-NAME>/.DeviceAdminComponent
它对我很好。
有人可以帮我解决这个问题吗?可能是因为三星的 KNOX 造成的?(我通过设备管理员查看 - 我的 Knox 策略管理员,我无法禁用)。