如何将安卓版智能生活 App SDK 集成到开发环境中?
Posted IoT砖家涂拉拉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将安卓版智能生活 App SDK 集成到开发环境中?相关的知识,希望对你有一定的参考价值。
目录
第三步:集成安全图片和设置 Appkey 和 AppSecret
本文我将为大家介绍如何将安卓版涂鸦 智能生活 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
-
在 涂鸦 IoT 开发平台,找到你创建的 SDK。
-
在 获取密钥 中,点击 下载安全图片 > 安全图片下载 下载安全图片。
-
将下载的安全图片命名为
t_s.bmp
,放置到工程目录的assets
文件夹下。 -
返回安卓项目,在
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 应用主要包括:
-
用户管理:使用手机号或者邮箱进行登录和注册。
-
家庭管理和设备管理:
- 创建家庭,切换用户所属的当前家庭。
- 展现家庭中设备列表,控制设备功能。
- 设备重命名和设备移除。
-
设备配网:包括 Wi-Fi 快连配网模式、热点配网模式、有线网关配网、网关子设备配网、蓝牙配网、Mesh 子设备配网。
运行 Demo
-
替换
app
目录下build.gradle
文件中的applicationId
为您的应用包名。 -
确认您已经完成第三步:集成安全图片和设置 Appkey 和 AppSecret。
-
然后点击运行,运行 Demo。
常见问题
SING_VALIDATE_FALED
API 请求提示签名错误(SING_VALIDATE_FALED
)
-
问题现象:运行 Demo 时提示以下错误:
"success": false, "errorCode" : "SING_VALIDATE_FALED", "status" : "error", "errorMsg" : "Permission Verification Failed", "t" : 1583208740059
-
解决方法:
- 请检查 AppKey 、AppSecret 和 安全图片是否正确配置,是否和准备工作中获取到的一致。
- 安全图片是否放在正确目录,文件名是否为
t_s.bmp
。
ILLEGAL_CLIENT_ID
-
为什么智能生活 App SDK 升级到 3.29.5 后,报错
ILLEGAL_CLIENT_ID
?
- 因为智能生活 App SDK 从 3.29.5 版本开始,做了安全校验的升级。
- 需要在涂鸦 IoT 开发平台根据说明文档来获取 SHA256,然后在平台绑定你的 SHA256。
-
为什么智能生活 App SDK 升级到 4.0.0 后,报错
ILLEGAL_CLIENT_ID
?
- 因为智能生活 App SDK 从 4.0.0 版本开始,做了安全校验的升级。
- 在涂鸦 IoT 开发平台配置的安卓包名需要与自身的工程
packageName
保持一致。否则,系统会报错ILLEGAL_CLIENT_ID
。
-
为什么在涂鸦 IoT 开发平台配置了 SHA256,直接运行 Demo,还是报错
ILLEGAL_CLIENT_ID
?
- 解决方法:直接运行 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 版快速集成到项目中