This document provides information about the AWS IoT device SDK for Java V2.
If you have any issues or feature requests, please file an issue or pull request.
API documentation: https://aws.github.io/aws-iot-device-sdk-java-v2/
This SDK is built on the AWS Common Runtime, a collection of libraries (aws-c-common, aws-c-io, aws-c-mqtt, aws-c-http, aws-c-cal, aws-c-auth, s2n...) written in C to be cross-platform, high-performance, secure, and reliable. The libraries are bound to Java by the aws-crt-java package.
Jump To:
- Java 8+ (Download and Install Java)
- Java JDK 8+ (Download and Install JDK)
- C++ 11 or higher
- Clang 3.9+ or GCC 4.4+ or MSVC 2015+
- CMake 3.1+
Consuming this SDK via Maven is the preferred method of consuming it. Add the following to your pom.xml dependencies:
<dependency>
<groupId>software.amazon.awssdk.iotdevicesdk</groupId>
<artifactId>aws-iot-device-sdk</artifactId>
<version>1.10.5</version>
</dependency>
Replace 1.10.5
in <version>1.10.5</version>
with the latest release version for the SDK.
Look up the latest SDK version here: https://github.com/aws/aws-iot-device-sdk-java-v2/releases
# Create a workspace directory to hold all the SDK files
mkdir sdk-workspace
cd sdk-workspace
# Clone the repository
git clone https://github.com/awslabs/aws-iot-device-sdk-java-v2.git
# Update the version of the CRT being used, compile, and install
mvn versions:use-latest-versions -Dincludes="software.amazon.awssdk.crt*"
mvn clean install
# Create a workspace directory to hold all the SDK files
mkdir sdk-workspace
cd sdk-workspace
# Clone the CRT repository
# (Use the latest version of the CRT here instead of "v0.20.0")
git clone --branch v0.20.0 --recurse-submodules https://github.com/awslabs/aws-crt-java.git
cd aws-crt-java
# Compile and install the CRT
mvn install -Dmaven.test.skip=true
# Clone the SDK repository
git clone https://github.com/awslabs/aws-iot-device-sdk-java-v2.git
cd ../aws-iot-device-sdk-java-v2
# Compile and install
mvn clean install
Supports API 26 or newer. NOTE: The shadow sample does not currently complete on android due to its dependence on stdin keyboard input.
# Create a workspace directory to hold all the SDK files
mkdir sdk-workspace
cd sdk-workspace
# Clone the CRT repository
# (Use the latest version of the CRT here instead of "v0.20.0")
git clone --branch v0.20.0 --recurse-submodules https://github.com/awslabs/aws-crt-java.git
# Compile and install the CRT for Android
cd aws-crt-java/android
./gradlew connectedCheck # optional, will run the unit tests on any connected devices/emulators
./gradlew publishToMavenLocal
# Clone the SDK repository
git clone https://github.com/awslabs/aws-iot-device-sdk-java-v2.git
cd ../aws-iot-device-sdk-java-v2/android
# Compile and install
./gradlew publishToMavenLocal
./gradlew installDebug # optional, will install the IoTSamples app to any connected devices/emulators
Add the following to your project's build.gradle:
repositories {
mavenCentral()
maven {
url System.getenv('HOME') + "/.m2/repository"
}
}
dependencies {
implementation 'software.amazon.awssdk.crt:android:0.20.0'
}
Replace 0.20.0
in software.amazon.awssdk.crt:android:0.20.0
with the latest version of the CRT.
Look up the latest CRT version here: https://github.com/awslabs/aws-crt-java/releases
You will need to override and provide a ROOT_CERTIFICATE manually from one of the following certificates. For overriding default trust store you can use following method. It's a known problem.
The best way to interact with our team is through GitHub. You can open an issue and choose from one of our templates for guidance, bug reports, or feature requests. You may also find help on community resources such as StackOverFlow with the tag #aws-iot or If you have a support plan with AWS Support, you can also create a new support case.
Please make sure to check out our resources too before opening an issue:
- Our FAQ
- Our Developer Guide (source)
- MQTT5 User Guide
- Check for similar Issues
- AWS IoT Core Documentation
- Dev Blog
- Integration with AWS IoT Services such as Device Shadow Jobs Fleet Provisioning is provided by code that been generated from a model of the service.
We need your help in making this SDK great. Please participate in the community and contribute to this effort by submitting issues, participating in discussion forums and submitting pull requests through the following channels.
- Contributions Guidelines
- Articulate your feature request or upvote existing ones on our Issues page.
- Create discussion questions here
- Find a bug open an issue
This library is licensed under the Apache 2.0 License.
Latest released version: v1.11.0