Возможна ли функция FileUpload для Azure IoT Java SDK на Android? - PullRequest
0 голосов
/ 25 апреля 2019

Мы пытались использовать Azure IoT SDK для Java на Android (через Kotlin), чтобы инициировать загрузку BLOB-файлов. Кажется, что процесс зависает после получения токена SAS и вызова конструктора CloudBlockBlob.

Поэтому я попытался вызвать конструктор напрямую и обнаружил зависимость от javax.xml.stream.XMLOutputFactory благодаря зависимости от Azure Storage SDK v. 2.2 (на удивление старая!). Библиотеки AFAIK javax нелегко включить в Android.

Существует отдельный SDK для хранения Android (который, по-видимому, не имеет этих зависимостей), но, в том числе, в дополнение к IoT SDK вполне понятно, что это приводит к множеству ошибок Duplicate Class.

Какой выход из этого? Разверните Azure IoT SDK для Java и замените ссылку на SDK хранилища версией Android?

Ответы [ 3 ]

0 голосов
/ 25 апреля 2019

Вы можете использовать вызовы API REST для загрузки BLOB-файла с поддержкой концентратора IoT Azure.Есть 3 шага, см. Мой ответ здесь .

0 голосов
/ 25 апреля 2019

В build.gradle в приложении объявите зависимости следующим образом, чтобы заменить azure-storage на azure-storage-android:

implementation ('com.microsoft.azure.sdk.iot:iot-device-client:1.14.2'){
    exclude module: 'azure-storage'
}
implementation ('com.microsoft.azure.android:azure-storage-android:2.0.0@aar')
implementation ('org.apache.commons:commons-lang3:3.6') 

Это задокументировано в нашем примере: https://github.com/Azure-Samples/azure-iot-samples-java/edit/master/iot-hub/Samples/device/AndroidSample/app/build.gradle

Сообщите нам, если вы столкнетесь с большим количеством проблем, подав заявку на GitHub здесь .

0 голосов
/ 25 апреля 2019

Я еще не пробовал Azure IOT, но я прочитал об их объявлении о том, что SDK теперь поддерживает Android .У них даже есть образец , а также действительно хорошо написанный быстрый старт .Для установки у них даже есть инструкции на их github .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...