Last Updated on : 2025-10-24 07:32:37download
This topic describes how to quickly integrate SmartLife App SDK for Android into your development environment, such as Android Studio. It also sheds light on the initialization method and how to enable the debugging mode with a few simple steps. This allows you to run the demo app and get started with your SmartLife app development by using the App SDK.
Before you start, make sure that you have performed the steps in Preparation.
If you have not installed Android Studio, visit the Android Studio official website to download Android Studio.
If you have integrated SmartLife App SDK v3.x.x or v4.x.x into your project, follow the instructions in Upgrade Guide and upgrade to the latest version.
Starting from SmartLife App SDK for Android v4.0.0, the SDK is classified into the development edition and official edition. For more information, see Pricing.
Starting from the SmartLife App SDK for Android v4.0.0, the Android package name configured on the Tuya Developer Platform must be the same as the value of packageName in your project. Otherwise, ILLEGAL_CLIENT_ID will be returned.
Starting from the SmartLife App SDK for Android v3.29.5, SHA256 hash values are required. For more information, see How to Get SHA1 and SHA256 Keys.
If you plan to launch the app to Google Play, you must enable the re-signing feature. If this feature is enabled, go to the Tuya Developer Platform and configure the SHA256 hash values generated by Google. Otherwise, an illegal client error will occur. For more information, see Enable Signature Protection for Android.
App SDK v3.10.0 and earlier only support armeabi-v7a. App SDK v3.11.0 and later have integrated with armeabi-v7a and arm64-v8a. If you have added .so libraries to the project, you must remove them and only use the library included in the SDK. If you want to integrate the .so library of a later version, you must remove the library of an earlier version to avoid conflicts or other possible issues.
Create a project in Android Studio.
build.gradleAdd dependencies to the build.gradle file of the Android project.
android {
defaultConfig {
ndk {
abiFilters "armeabi-v7a", "arm64-v8a"
}
}
packagingOptions {
pickFirst 'lib/*/libc++_shared.so' // An Android Archive (AAR) file contains an Android library. If the .so file exists in multiple AAR files, select the first AAR file.
}
}
configurations.all {
exclude group: "com.thingclips.smart" ,module: 'thingsmart-modularCampAnno'
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.aar'])
implementation 'com.alibaba:fastjson:1.1.67.android'
implementation 'com.squareup.okhttp3:okhttp-urlconnection:3.14.9'
// The latest stable App SDK for Android.
implementation 'com.thingclips.smart:thingsmart:6.7.7'
}
Add the Tuya IoT Maven repository URL to the build.gradle file in the root directory.
repositories {
jcenter()
maven { url 'https://maven-other.tuya.com/repository/maven-releases/' }
maven { url "https://maven-other.tuya.com/repository/maven-commercial-releases/" }
maven { url 'https://jitpack.io' }
google()
mavenCentral()
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://central.maven.org/maven2/' }
maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }
maven { url 'https://developer.huawei.com/repo/' }
}
This SDK version supports Android minSdkVersion 23, targetSdkVersion 35, and only supports building via AndroidX.
Go to the Get SDK tab, select one or more required SDKs or BizBundles, and then download the App SDK for iOS or Android.
Extract the downloaded package, put security-algorithm.aar in the libs directory of the project, and then make sure dependencies in build.gradle of your project include: implementation fileTree(include: ['*.aar'], dir: 'libs').
Log in to the Tuya Developer Platform, go to the SDK Development page, and then click the SDK to be managed.
Get the AppKey and AppSecret from the previous step and configure them in AndroidManifest.xml:
<meta-data
android:name="THING_SMART_APPKEY"
android:value="AppKey" />
<meta-data
android:name="THING_SMART_SECRET"
android:value="AppSecret" />
Configure the app certificate:
Configure obfuscation in proguard-rules.pro.
#fastJson
-keep class com.alibaba.fastjson.**{*;}
-dontwarn com.alibaba.fastjson.**
#mqtt
-keep class com.thingclips.smart.mqttclient.mqttv3.** { *; }
-dontwarn com.thingclips.smart.mqttclient.mqttv3.**
#OkHttp3
-keep class okhttp3.** { *; }
-keep interface okhttp3.** { *; }
-dontwarn okhttp3.**
-keep class okio.** { *; }
-dontwarn okio.**
-keep class com.thingclips.**{*;}
-dontwarn com.thingclips.**
# Matter SDK
-keep class chip.** { *; }
-dontwarn chip.**
#MINI SDK
-keep class com.gzl.smart.** { *; }
-dontwarn com.gzl.smart.**
Initialize the SDK in the main thread of Application. Make sure that all processes are initialized. Example:
public class ThingSmartApp extends Application {
@Override
public void onCreate() {
super.onCreate();
ThingHomeSdk.init(this);
}
}
Configure appKey and appSecret in AndroidManifest.xml, or run the initialization code.
ThingHomeSdk.init(Application application, String appkey, String appSerect)
Before you exit the app, you must call the following operation to destroy the cloud connection.
ThingHomeSdk.onDestroy();
In debug mode, you can enable SDK logging to facilitate troubleshooting.
We recommend that you disable logging in release mode.
ThingHomeSdk.setDebugMode(true);
AppKey and AppSecret. Make sure the AppKey and AppSecret are consistent with those used on the Tuya Developer Platform. Any mismatch will cause the SDK development to be failed. For more information, see Step 4: Configure AppKey, AppSecret, and certificate signature.In the following example, a demo app is used to describe the process of app development with the App SDK and indicate the SDK capabilities that you can integrate to implement smart life scenarios. Before the development of your app, we recommend that you run the demo app.
The demo app supports the following features:
User management: Register and log in to the app account by mobile phone number or email address.
Home and device management:
Pair devices: Multiple pairing methods are supported, including EZ Mode, AP Mode, Bluetooth Low Energy, Zigbee Gateway, Zigbee Subdevice, QR Code, and Bluetooth LE Mesh Sub Device.
For more information, see the GitHub project tuya-home-android-sdk-sample-kotlin.
Choose app > build.gradle and change the value of applicationId to your app package name.
Make sure that you have completed Step 3: Integrate with security component and Step 4: Configure AppKey, AppSecret, and certificate signature.
Click Run to run the sample.
Troubleshoot the error message: SING_VALIDATE_FALED
Problem: When the system runs the demo app, an error message is returned in the following response:
{
"success": false,
"errorCode" : "SING_VALIDATE_FALED",
"status" : "error",
"errorMsg" : "Permission Verification Failed",
"t" : 1583208740059
}
Solutions:
Check whether your AppKey, and AppSecret are correctly configured and consistent with those obtained in Preparation.
After the SmartLife App SDK for Android is updated to v3.29.5, an error message ILLEGAL_CLIENT_ID is returned to indicate an illegal client. How do I troubleshoot this problem?
After SmartLife App SDK for Android is updated to v4.0.0, an error message ILLEGAL_CLIENT_ID is returned to indicate an illegal client. How do I troubleshoot this problem?
packageName in your project. Otherwise, ILLEGAL_CLIENT_ID will be returned.After SHA256 hash values are configured on the Tuya Developer Platform and the sample is run, the error message saying ILLEGAL_CLIENT_ID is still returned. How do I troubleshoot the problem?
Solution: Before you run the sample, add the following signature information to build.gradle of the app module.
android {
...
signingConfigs {
debug {
storeFile file('xxxx.jks')
storePassword 'xxxxxx'
keyAlias 'xxx'
keyPassword 'xxxxxx'
}
release {
storeFile file('xxxx.jks')
storePassword 'xxxxxx'
keyAlias 'xxx'
keyPassword 'xxxxxx'
}
}
}
Is this page helpful?
YesFeedbackIs this page helpful?
YesFeedback