Есть несколько вариантов сделать это, в зависимости от вашей версии Android.
Начну с самого простого варианта. Если у вас Android 7+, вы можете использовать подготовку QR-кода, это происходит точно так же, как и подготовка NFC. Вы можете ознакомиться с некоторыми спецификациями Google относительно этого.
Второй вариант немного сложнее и требует специального разработчика на вашей стороне. Прежде всего, сделайте ваше устройство владельцем устройства (что необходимо для режима COSU, прочитайте о владельце устройства здесь). С помощью команды: 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 Provisioning:
`
#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"
}
}
`
person
Jason Lee
schedule
02.08.2018