简体中文
简体中文
English
联系我们
注册
登录
语言
简体中文
简体中文
English
联系我们
登录
注册
返回主站
layout空间导航

快速集成安卓 App SDK

更新时间:2021-11-25 01:26:42下载pdf

本文介绍如何将涂鸦安卓 App SDK 集成到您的开发环境中,例如 Android Studio,并介绍初始化方法以及如何启用调试模式。然后,您可以尝试运行 Demo,快速上手全屋智能移动应用开发。

集成 SDK

  • 开始操作前,请确保您已经完成了 准备工作

    从安卓版智能生活 App SDK 的 3.29.5 版本开始,您需要设置SHA256。关于如何获取 SHA256 密钥,请参考 如何获取SHA密钥

  • 如果您还未安装 Android Studio,请访问 安卓官网 进行下载安装。

第一步:创建 Android 工程

在 Android Studio 中新建工程。

第二步:配置 build.gradle 文件

在安卓项目的 build.gradle 文件里,添加集成准备中下载的 dependencies 依赖库。

android {
	defaultConfig {
		ndk {
			abiFilters "armeabi-v7a", "arm64-v8a"
		}
	}
	packagingOptions {
		pickFirst 'lib/*/libc++_shared.so' // 多个 AAR(Android Library)文件中存在此 .so 文件,请选择第一个
	}
}
dependencies {
	implementation 'com.alibaba:fastjson:1.1.67.android'
	implementation 'com.squareup.okhttp3:okhttp-urlconnection:3.14.9'

	// App SDK 最新稳定安卓版:
	implementation 'com.tuya.smart:tuyasmart:3.32.5'
}

在根目录的 build.gradle 文件,中增加涂鸦 IoT Maven 仓库地址,进行仓库配置。

repositories {
	jcenter()
	google()
	// 涂鸦 IoT 仓库地址
	maven {
		url "https://maven-other.tuya.com/repository/maven-releases/"
	}
}
  • 3.10.0 版本之前的 SDK 只支持安卓 armeabi-v7a。3.11.0 版本后已经将 armeabi-v7a、arm64-v8a 集成进 SDK。您需要将本地自行放入的 SDK 的相关 so 库移除,使用 SDK 中提供的。
  • 如果集成新版本 so 库,请移除之前老版本手动集成的库,防止冲突或者代码版本不一致导致的问题。
  • 如有其他平台需要,请前往 GitHub 获取。

第三步:集成安全图片和设置 Appkey 和 AppSecret

  1. App 工作台,找到您创建的 SDK。

  2. 获取密钥 中,点击 下载安全图片 > 安全图片下载 下载安全图片。

    快速集成安卓 App SDK

    从安卓版智能生活 App SDK 的 3.29.5 版本开始,您需要为 SDK 应用设置 SHA256 密钥。关于如何获取 SHA256密钥,请参考 如何获取 SHA 密钥

  3. 将下载的安全图片命名为 t_s.bmp,放置到工程目录的 assets 文件夹下。

    快速集成安卓 App SDK
  4. 返回安卓项目,在 AndroidManifest.xml 文件里配置 appkey 和 appSecret,在配置相应的权限等。

    <meta-data
    android:name="TUYA_SMART_APPKEY"
    android:value="应用 Appkey" />
    <meta-data
    android:name="TUYA_SMART_SECRET"
    android:value="应用密钥 AppSecret" />
    

第四步:混淆配置

proguard-rules.pro 文件配置相应混淆配置。

#fastJson
-keep class com.alibaba.fastjson.**{*;}
-dontwarn com.alibaba.fastjson.**

#mqtt
-keep class com.tuya.smart.mqttclient.mqttv3.** { *; }
-dontwarn com.tuya.smart.mqttclient.mqttv3.**

#OkHttp3
-keep class okhttp3.** { *; }
-keep interface okhttp3.** { *; }
-dontwarn okhttp3.**

-keep class okio.** { *; }
-dontwarn okio.**

-keep class com.tuya.**{*;}
-dontwarn com.tuya.**

第五步:初始化 SDK

您需要在 Application 的主线程中初始化 SDK,确保所有进程都能初始化。示例代码如下:

public class TuyaSmartApp extends Application {
	@Override
	public void onCreate() {
		super.onCreate();
		TuyaHomeSdk.init(this);
	}
}

appKeyappSecret 可以配置在 AndroidManifest.xml 文件里,也可以在初始化代码里初始化。

TuyaHomeSdk.init(Application application, String appkey, String appSerect)

第六步:注销云连接

在退出应用的时候,调用以下接口可以注销云连接。

TuyaHomeSdk.onDestroy();

第七步:开启或关闭日志

  • 在 debug 模式下,您可以开启 SDK 的日志开关,查看更多的日志信息,帮助您快速定位问题。

  • 在 release 模式下,建议关闭日志开关。

    TuyaHomeSdk.setDebugMode(true);
    

运行 Demo 应用

在完成快速集成 SDK 后,您将获取到 SDK 使用的 AppKeyAppSecret、安全图片信息。集成 SDK 时请确认 AppKeyAppSecret、安全图片是否与平台上的信息一致,任意一个不匹配会导致 SDK 无法使用。详细操作,请参考 第三步:集成安全图片和设置 Appkey 和 AppSecret

Demo 应用演示了 App SDK 的开发流程。在开发应用之前,建议您先按照以下流程完成 Demo 应用的操作。

Demo 应用介绍

Demo 应用主要包括了:

  • 用户管理:使用手机号或者邮箱进行登录和注册。
  • 家庭管理和设备管理:
    • 创建家庭,切换用户所属的当前家庭。
    • 展现家庭中设备列表,控制设备功能点。
    • 设备重命名和设备移除。
  • 设备配网:包括 Wi-Fi 快连配网模式,热点配网模式,有线网关配网,网关子设备配网,蓝牙配网,Mesh子设备配网。
    快速集成安卓 App SDK

更多详情,请参考 tuya-home-android-sdk-sample-java 或者 tuya-home-android-sdk-sample-kotlin GitHub 项目。

运行 Demo

  1. 替换 app 目录下 build.gradle 文件中的 applicationId 为您的应用包名。

    快速集成安卓 App SDK

  2. 确认您已经完成了 第三步:集成安全图片和设置 Appkey 和 AppSecret

  3. 然后点击运行,运行 Demo。

常见问题

  • API 接口请求提示签名错误

    • 问题现象:运行 Demo 时提示以下错误:

      {
      	"success": false,
      	"errorCode" : "SING_VALIDATE_FALED",
      	"status" : "error",
      	"errorMsg" : "Permission Verification Failed",
      	"t" : 1583208740059
      }
      
    • 解决方法

    • 请检查您的 AppKey 、AppSecret 和 安全图片是否正确配置,是否和 准备工作 中获取到的一致。

    • 安全图片是否放在正确目录,文件名是否为 t_s.bmp

  • 为什么智能家居App SDK升级到3.29.5后,报错非法客户端?(ILLEGAL_CLIENT_ID)

    • 因为智能家居App SDK从3.29.5版本开始,做了安全校验的升级。
    • 您需要在IoT平台根据说明文档来 获取SHA256,然后在平台绑定您的SHA256,详细配置步骤请参考准备工作
  • 为什么在Iot平台配置了SHA256,然后直接运行Demo还是报错”非法客户端“ ?

    • 解决方法:直接运行 Demo 需要在 app 模块的 build.gradle 中配置您自己的签名信息:
    	android {
    			...
    			signingConfigs {
    			debug {
    				storeFile file('xxxx.jks')
    				storePassword 'xxxxxx'
    				keyAlias 'xxx'
    				keyPassword 'xxxxxx'
    			}
    			release {
    				storeFile file('xxxx.jks')
    				storePassword 'xxxxxx'
    				keyAlias 'xxx'
    				keyPassword 'xxxxxx'
    			}
    	}
    }