Error: Unknown admin: ComponentInfo
Error: Unknown admin: ComponentInfo
可以找到清单文件 here。
DeviceAdminReceiver class 可以找到 here
agent_device_xml定义如下:
<?xml version="1.0" encoding="utf-8"?>
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
<uses-policies>
<limit-password />
<watch-login />
<reset-password />
<force-lock />
<wipe-data />
<expire-password />
<encrypted-storage />
<disable-camera />
</uses-policies>
命令执行错误:
adb shell dpm set-device-owner org.wso2.iot.agent.services/.AgentDeviceAdminReceiver
Error: Unknown admin: ComponentInfo{org.wso2.iot.agent.services/org.wso2.iot.agent.services.AgentDeviceAdminReceiver}
这是logcat。
06-21 13:58:54.053 11499-12787/org.wso2.iot.agent E/Volley: [714] NetworkDispatcher.run: Unhandled exception java.lang.SecurityException: Admin ComponentInfo{org.wso2.iot.agent/org.wso2.iot.agent.services.AgentDeviceAdminReceiver} does not own the device
java.lang.SecurityException: Admin ComponentInfo{org.wso2.iot.agent/org.wso2.iot.agent.services.AgentDeviceAdminReceiver} does not own the device
at android.os.Parcel.readException(Parcel.java:1689)
at android.os.Parcel.readException(Parcel.java:1641)
at android.app.admin.IDevicePolicyManager$Stub$Proxy.setAutoTimeRequired(IDevicePolicyManager.java:6759)
at android.app.admin.DevicePolicyManager.setAutoTimeRequired(DevicePolicyManager.java:3377)
at org.wso2.iot.agent.services.operation.OperationManagerDeviceOwner.setAutoTimeRequired(OperationManagerDeviceOwner.java:681)
at org.wso2.iot.agent.services.operation.OperationProcessor.doTask(OperationProcessor.java:219)
at org.wso2.iot.agent.services.operation.OperationProcessor.setPolicyBundle(OperationProcessor.java:267)
at org.wso2.iot.agent.services.operation.OperationProcessor.doTask(OperationProcessor.java:125)
at org.wso2.iot.agent.services.MessageProcessor.performOperation(MessageProcessor.java:130)
at org.wso2.iot.agent.services.MessageProcessor.onReceiveAPIResult(MessageProcessor.java:327)
at org.wso2.iot.agent.proxy.APIController.parseNetworkResponse(APIController.java:383)
at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:123)
06-21 13:58:54.054 11499-11499/org.wso2.iot.agent E/APIController: com.android.volley.VolleyError: java.lang.SecurityException: Admin ComponentInfo{org.wso2.iot.agent/org.wso2.iot.agent.services.AgentDeviceAdminReceiver} does not own the device
如何解决此问题以使应用程序成为设备所有者。
乍一看,收件人姓名中似乎缺少“.services”,包裹名称不应包含“.services”。
尝试:
adb shell dpm set-device-owner org.wso2.iot.agent/.services.AgentDeviceAdminReceiver
我知道有点晚了,但我通过将 Manifest 文件中的接收器名称从 com.packageName.util.reciever.AdminReceiver
更改为 .AdminReceiver
解决了错误 - 然后直接将 Device Admin Receiver 放入包的根目录
之后安装应用程序和 运行 来自 ADB 的命令,例如 ADB shell dpm set-device-owner com.package.package/.AdminReceiver
晚了,但对我来说解决的是在 运行 ADB 命令时更改 applicationId 的包名称。
我想做什么:
adb shell dpm set-device-owner com.package.name/com.package.name.MyDeviceAdminReceiver
有效的方法:
adb shell dpm set-device-owner applicationId/com.package.name.MyDeviceAdminReceiver
可以找到清单文件 here。
DeviceAdminReceiver class 可以找到 here
agent_device_xml定义如下:
<?xml version="1.0" encoding="utf-8"?>
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
<uses-policies>
<limit-password />
<watch-login />
<reset-password />
<force-lock />
<wipe-data />
<expire-password />
<encrypted-storage />
<disable-camera />
</uses-policies>
命令执行错误:
adb shell dpm set-device-owner org.wso2.iot.agent.services/.AgentDeviceAdminReceiver
Error: Unknown admin: ComponentInfo{org.wso2.iot.agent.services/org.wso2.iot.agent.services.AgentDeviceAdminReceiver}
这是logcat。
06-21 13:58:54.053 11499-12787/org.wso2.iot.agent E/Volley: [714] NetworkDispatcher.run: Unhandled exception java.lang.SecurityException: Admin ComponentInfo{org.wso2.iot.agent/org.wso2.iot.agent.services.AgentDeviceAdminReceiver} does not own the device
java.lang.SecurityException: Admin ComponentInfo{org.wso2.iot.agent/org.wso2.iot.agent.services.AgentDeviceAdminReceiver} does not own the device
at android.os.Parcel.readException(Parcel.java:1689)
at android.os.Parcel.readException(Parcel.java:1641)
at android.app.admin.IDevicePolicyManager$Stub$Proxy.setAutoTimeRequired(IDevicePolicyManager.java:6759)
at android.app.admin.DevicePolicyManager.setAutoTimeRequired(DevicePolicyManager.java:3377)
at org.wso2.iot.agent.services.operation.OperationManagerDeviceOwner.setAutoTimeRequired(OperationManagerDeviceOwner.java:681)
at org.wso2.iot.agent.services.operation.OperationProcessor.doTask(OperationProcessor.java:219)
at org.wso2.iot.agent.services.operation.OperationProcessor.setPolicyBundle(OperationProcessor.java:267)
at org.wso2.iot.agent.services.operation.OperationProcessor.doTask(OperationProcessor.java:125)
at org.wso2.iot.agent.services.MessageProcessor.performOperation(MessageProcessor.java:130)
at org.wso2.iot.agent.services.MessageProcessor.onReceiveAPIResult(MessageProcessor.java:327)
at org.wso2.iot.agent.proxy.APIController.parseNetworkResponse(APIController.java:383)
at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:123)
06-21 13:58:54.054 11499-11499/org.wso2.iot.agent E/APIController: com.android.volley.VolleyError: java.lang.SecurityException: Admin ComponentInfo{org.wso2.iot.agent/org.wso2.iot.agent.services.AgentDeviceAdminReceiver} does not own the device
如何解决此问题以使应用程序成为设备所有者。
乍一看,收件人姓名中似乎缺少“.services”,包裹名称不应包含“.services”。
尝试: adb shell dpm set-device-owner org.wso2.iot.agent/.services.AgentDeviceAdminReceiver
我知道有点晚了,但我通过将 Manifest 文件中的接收器名称从 com.packageName.util.reciever.AdminReceiver
更改为 .AdminReceiver
解决了错误 - 然后直接将 Device Admin Receiver 放入包的根目录
之后安装应用程序和 运行 来自 ADB 的命令,例如 ADB shell dpm set-device-owner com.package.package/.AdminReceiver
晚了,但对我来说解决的是在 运行 ADB 命令时更改 applicationId 的包名称。
我想做什么:
adb shell dpm set-device-owner com.package.name/com.package.name.MyDeviceAdminReceiver
有效的方法:
adb shell dpm set-device-owner applicationId/com.package.name.MyDeviceAdminReceiver