我们一直在尝试在Android上使用Azure IoT SDK for Java(通过Kotlin)来启动blob文件上传。收到SAS令牌并调用CloudBlockBlob构造函数后,该过程似乎挂起。
因此,我尝试直接调用构造函数,并依靠Azure Storage SDK v.2.2(令人惊讶的旧版本)依赖于javax.xml.stream.XMLOutputFactory
。 javax
库AFAIK不易在Android上集成。
有一个单独的Android存储SDK(可能没有这些依赖关系),但除了IoT SDK之外,还可以理解为导致大量的Duplicate Class错误。
这是怎么回事?使用Azure IoT SDK for Java,并将存储SDK参考替换为Android版本?
在app中的build.gradle中,请使用azure-storage-android替换azure-storage,如下所示:
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')
如果您通过提交GitHub问题here遇到更多问题,请告诉我们。
我还没有尝试过azure IOT,但我已经读过关于他们宣布SDK supports android now的消息。他们甚至有一个sample,还有一个写得很好的quick start。对于安装,他们甚至有他们的github的说明。
您可以使用REST API调用来上载具有Azure IoT Hub支持的blob文件。有3个步骤,请参阅我的答案here。