dpm
当您得到命令语法错误时,错误地以状态码 0 退出。正确的语法是dpm set-device-owner package/.ComponentName
. 当你得到正确的语法时,exec(...)
抛出一个SecurityException
:
java.lang.SecurityException: Neither user 10086 nor current process has android.permission.MANAGE_DEVICE_ADMINS.
at android.os.Parcel.readException(Parcel.java:1546)
at android.os.Parcel.readException(Parcel.java:1499)
at android.app.admin.IDevicePolicyManager$Stub$Proxy.setActiveAdmin(IDevicePolicyManager.java:2993)
at com.android.commands.dpm.Dpm.runSetDeviceOwner(Dpm.java:110)
at com.android.commands.dpm.Dpm.onRun(Dpm.java:82)
at com.android.internal.os.BaseCommand.run(BaseCommand.java:47)
at com.android.commands.dpm.Dpm.main(Dpm.java:38)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:249)
将此权限添加到清单没有帮助,因此它可能是仅限系统的权限。
在没有 NFC 的设备上部署 kiosk 模式应用程序已经很麻烦了,因为您必须启用开发者模式并通过adb
. 我猜供应商只需要dpm
手动运行。