如何将安卓版智能生活 App SDK 集成到开发环境中?

Posted IoT砖家涂拉拉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将安卓版智能生活 App SDK 集成到开发环境中?相关的知识,希望对你有一定的参考价值。

目录

前提条件

集成 SDK

第一步:创建 Android 工程

第二步:配置 build.gradle 文件

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

第四步:混淆配置

第五步:初始化 SDK

第六步:注销云连接

第七步:开启或关闭日志

运行 Demo 应用

Demo 应用介绍

运行 Demo

常见问题

SING_VALIDATE_FALED

ILLEGAL_CLIENT_ID


本文我将为大家介绍如何将安卓版涂鸦 智能生活 App SDK 集成到自有的开发环境中,例如 android Studio,并介绍初始化方法以及如何启用调试模式。

然后,大家可以尝试运行 Demo,快速上手全屋智能移动应用开发。

前提条件

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

集成 SDK

第一步:创建 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:4.0.0'

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

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 'http://central.maven.org/maven2/' 
	maven  url 'https://oss.sonatype.org/content/repositories/snapshots/' 
	maven  url 'https://developer.huawei.com/repo/' 
	

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

  1. 在 涂鸦 IoT 开发平台,找到你创建的 SDK。

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

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

  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);
	

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

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

第六步:注销云连接

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

TuyaHomeSdk.onDestroy();

第七步:开启或关闭日志

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

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

    TuyaHomeSdk.setDebugMode(true);
    

implementation("com.tuya.smart:tuyasmart:3.32.5")
        exclude group: 'com.tuya.smart', module: 'tuyasmart-log'
    

运行 Demo 应用

Demo 应用演示 App SDK 的开发流程,展现如何调用 SDK 能力、实现智能家居场景。在开发应用之前,建议根据需要先按照以下流程完成 Demo 应用的操作。

Demo 应用介绍

Demo 应用主要包括:

  • 用户管理:使用手机号或者邮箱进行登录和注册。

  • 家庭管理和设备管理:

  1. 创建家庭,切换用户所属的当前家庭。
  2. 展现家庭中设备列表,控制设备功能。
  3. 设备重命名和设备移除。
  • 设备配网:包括 Wi-Fi 快连配网模式、热点配网模式、有线网关配网、网关子设备配网、蓝牙配网、Mesh 子设备配网。

运行 Demo

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

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

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

常见问题

SING_VALIDATE_FALED

API 请求提示签名错误(SING_VALIDATE_FALED

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

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

  1. 请检查 AppKey 、AppSecret 和 安全图片是否正确配置,是否和准备工作中获取到的一致。
  2. 安全图片是否放在正确目录,文件名是否为 t_s.bmp
     

ILLEGAL_CLIENT_ID

  • 为什么智能生活 App SDK 升级到 3.29.5 后,报错 ILLEGAL_CLIENT_ID

  1. 因为智能生活 App SDK 从 3.29.5 版本开始,做了安全校验的升级。
  2. 需要在涂鸦 IoT 开发平台根据说明文档来获取 SHA256​,然后在平台绑定你的 SHA256。
  • 为什么智能生活 App SDK 升级到 4.0.0 后,报错 ILLEGAL_CLIENT_ID

  1. 因为智能生活 App SDK 从 4.0.0 版本开始,做了安全校验的升级。
  2. 在涂鸦 IoT 开发平台配置的安卓包名需要与自身的工程 packageName 保持一致。否则,系统会报错 ILLEGAL_CLIENT_ID
     
  • 为什么在涂鸦 IoT 开发平台配置了 SHA256,直接运行 Demo,还是报错 ILLEGAL_CLIENT_ID

  1. 解决方法直接运行 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'
			
	

以上是关于如何将安卓版智能生活 App SDK 集成到开发环境中?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 CocoaPods 将智能生活 App SDK iOS 版快速集成到项目中

智能生活 App SDK 开发入门教程

智能生活 App SDK 开发入门教程内附代码段

IP 摄像机移动应用 SDK 开发入门教程(安卓版)

iOS 版智能生活 App SDK 开发入门教程1.5W字超详细步骤说明

什么是安卓版 UI 业务包 SDK?如何接入?