我已经构建了最新版本的wso2 emm android代理(cdmf-agent-android v3.1.30),并在物联网服务器3.1.0的BYOD模式下进行了一些初步测试
为COSU构建时,它正在等待通过NFC与其他设备进行配置。但我想配置没有NFC的设备。我有什么选择?我可以通过编程方式触发自定义配置选项吗?
答案 0 :(得分:1)
有一些选项可以执行此操作,具体取决于您的Android版本。
我将从最简单的选项开始。如果您使用的是Android 7+,则可以使用QR码设置,该过程与NFC设置完全相同。您可以从Google查看有关this的一些规范。
第二个选项有些棘手,并且需要一些自定义开发人员。使您的设备成为设备所有者的第一件事(对于COSU模式,这是必需的,请阅读有关设备所有者here的信息)。使用命令:adb shell dpm set-device-owner org.wso2.iot.agent/org.wso2.iot.agent.services.AgentDeviceAdminReceiver
注意:只能设置一个设备所有者,要删除设备所有者,必须将设备恢复出厂设置。
完成此操作后,您可以使用adb shell am start -n "org.wso2.iot.agent/org.wso2.iot.agent.activities.SplashActivity"
启动应用。
以上内容将使您的应用正常运行,但是现在它必须进行身份验证才能与服务器进行通信。使用NFC设置时,访问令牌以“ android.app.extra.token”的形式在附加捆绑包中提供,您可以按如下方式将此附加符插入启动意图:adb shell am start -n "org.wso2.iot.agent/org.wso2.iot.agent.activities.SplashActivity" --es android.app.extra.token generated_access_token
。您将必须编辑SpashActivity类以接受此令牌,并遵循应用程序中内置的常规身份验证过程。
这可能会晚一点,但我希望它还是有帮助的!
您可能会喜欢一些额外的信息,这是所使用的NFC消息的字符串表示形式,以下是NFC设置应用中设置的规范:
`
#Thu Apr 12 13:42:11 GMT+02:00 2018
android.app.extra.PROVISIONING_LOCAL_TIME=1523533331087
android.app.extra.PROVISIONING_TIME_ZONE=Asia/Colombo
android.app.extra.PROVISIONING_SKIP_ENCRYPTION=true
android.app.extra.PROVISIONING_WIFI_SECURITY_TYPE=WPA
android.app.extra.PROVISIONING_WIFI_PASSWORD=PASSWORD
android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION=LOCATION_OF_APK
android.app.extra.PROVISIONING_WIFI_SSID="WIFI_SSID_NAME"
android.app.extra.PROVISIONING_LOCALE=en_US
android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM=E8PtiqUOcqKi5IXeRBF-5Br0zXg
android.app.extra.PROVISIONING_ADMIN_EXTRAS_BUNDLE=\#admin extras bundle\n\#Thu Apr 12 13\:42\:11 GMT+02\:00 2018\nandroid.app.extra.token\=GENERATED_ACCESS_TOKEN\n
android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME=org.wso2.iot.agent
`
QR码表示的示例为:
`
{
"android.app.extra.PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME": "org.wso2.iot.agent/org.wso2.iot.agent.services.AgentDeviceAdminReceiver",
"android.app.extra.PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM": "CSGeivCEHdJrPT0qy4W67LZSy32Fus7GyUn0jE5o028",
"android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION": "APK_DOWNLOAD_LOCATION",
"android.app.extra.PROVISIONING_SKIP_ENCRYPTION": false,
"android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME": "org.wso2.iot.agent",
"android.app.extra.PROVISIONING_ADMIN_EXTRAS_BUNDLE": {
"android.app.extra.token":"GENERATED_ACCESS_TOKEN"
}
}
`