将QR码置备为设备所有者模式失败

时间:2018-11-20 14:22:40

标签: android qr-code provisioning device-owner

我有一台运行Android 7.1.1的设备,并且正在构建示例DPC应用,以准备制作COSU信息亭应用,但我在配置设置中一直遇到错误。

我采取的步骤:

  1. 恢复出厂设置
  2. 从QR设置屏幕成功扫描代码
  3. 应用程序下载成功,并且校验和检查通过。我知道这一点,因为起初它一直在错误生成的校验和上失败。
  4. 安装应用程序消息顺利通过。
  5. 该消息更改为“正在设置设备所有者...”,并立即失败,并显示通用消息“糟糕!无法设置您的设备...”

我已经将/* [ { "open": "86.13", "close": "85.64" }, ] */ 子类中的简单db.myCollection.aggregate([ { $addFields : { open: {"$toString" : "$open"}, close : {"$toString" : "$close"}, } }, ]); 放入了ToastDeviceAdminReceiver函数中。在onEnabled中显示的Toast,在onProvisioningComplete中显示的Toast毫无疑问。

该应用已使用适当的发行证书签名,通过adb设置设备所有者也可以正常工作,这也使我相信组件名称和清单是可以的,否则adb命令也会失败。

QR码文字:

onEnabled

任何想法可能有什么问题吗?我已经快没钱了。感谢您的输入!

1 个答案:

答案 0 :(得分:1)

{
     "android.app.extra.PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME": "com.my.app/com.my.app.MyDeviceAdminReceiver",   
     "android.app.extra.PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM": "the checksum",
     "android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION": "the link",
     "android.app.extra.PROVISIONING_SKIP_ENCRYPTION" : true,
     "android.app.extra.PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED" : true
}
PROVISIONING_SKIP_ENCRYPTION和PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED的

值应为布尔值,而不是字符串。至少在我的应用程序中它的布尔值是有效的。

还要确保以正确的方式指定了设备管理接收器的组件名称。指定的组件必须扩展android.app.admin.DeviceAdminReceiver。