如何将安卓版智能生活 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'
			}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IoT砖家涂拉拉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值