我一直在尝试将一个内部演示应用程序升级为我所扎根的S8上的Device Owner,并一直遇到问题.
我尝试的方式:
1)NFC设置(如here所述)
将NFC与Android Bean一起使用以设置设备所有者时,S8显示“由于设备的安全准则而无法创建工作配置文件”-错误
2)Adb置备(从控制台):
使用时
dpm set-device-owner my/app/namespace/.DeviceAdmin
在Windows控制台中,出现以下错误
java.lang.SecurityException: Neither user 2000 nor current process has com.samsung.android.knox.permission.KNOX_PROXY_ADMIN_INTERNAL.,com.sec.enterprise.permission.MDM_PROXY_ADMIN_INTERNAL
at android.os.Parcel.readException(Parcel.java:1693)
at android.os.Parcel.readException(Parcel.java:1646)
at android.app.admin.IDevicePolicyManager$Stub$Proxy.setActiveAdmin(IDevicePolicyManager.java:5825)
at com.android.commands.dpm.Dpm.runSetDeviceOwner(Dpm.java:145)
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:307)
将缺少的权限添加到清单中并没有任何改变.
在这种情况下,我可以在正确的文件夹中创建XML,但是当我重新启动手机时,该文件将被删除,并且我的应用未注册为设备所有者
还有其他我可以尝试的方法,还是有人知道问题出在哪里?
解决方法:
感谢Freds的评论,我调查了清单,并将其与我一直在使用的另一个应用程序进行了比较,并且能够使Adb设置起作用.
<uses-permission android:name="android.permission.INteraCT_ACROSS_USERS_FULL" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<application
...
android:testOnly="false">
之后,命令
dpm set-device-owner my/app/namespace/.DeviceAdmin
无错误地执行.
老实说,我不太清楚其中一个是成功的秘诀,因为如果不进行出厂重置就无法取消配置设备,但我想还是应该分享一下,希望它可以节省其他人的时间.