更新时间:2024-05-16 02:16:27下载pdf
本文介绍如何将安卓版涂鸦 Cube App SDK 集成到您的开发环境中,例如 Android Studio,并介绍初始化方法以及如何启用调试模式。然后,您可以尝试运行 Demo,快速上手全屋智能移动应用开发。
如果您之前采用的是从 1.x.x 版本 Cube App SDK,请参考 迁移指南 升级到最新版本 SDK。
在涂鸦开发者平台配置的安卓包名需要与您的工程 packageName
保持一致。否则,系统会报错 ILLEGAL_CLIENT_ID
。
您需要为 SDK 应用设置 SHA256 密钥。详情请参考 如何获取 SHA 密钥。
如果您需要上传应用至 Google Play 应用商店,请注意查看是否已开启重签名功能。若已开启,需要将谷歌生成的 SHA256 密钥配置到涂鸦开发者平台,否则会提示 非法客户端 问题。详情请参考 开启 Android 签名保护。
在 Android Studio 中新建工程。
在安卓项目的 build.gradle
文件里,添加集成准备中下载的 dependencies
依赖库。
android {
defaultConfig {
ndk {
abiFilters "armeabi-v7a", "arm64-v8a"
}
}
packagingOptions {
pickFirst 'lib/*/libc++_shared.so' // 多个 AAR(Android Library)文件中存在此 .so 文件,请选择第一个
}
}
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'
// App SDK 最新稳定安卓版:
implementation 'com.facebook.soloader:soloader:0.10.4+'
implementation 'com.thingclips.smart:thingsmart:5.9.0-cube'
}
在根目录的 build.gradle
文件中,增加涂鸦 Maven 仓库地址,进行仓库配置。请联系项目经理获取仓库账号密码。
repositories {
jcenter()
// Tuya Maven repository URL.
maven {
url 'https://maven-other.tuya.com/repository/maven-private/'
credentials {
//请联系PM 申请私有源
username ?
password ?
}
}
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/' }
}
在 获取 SDK 页面,勾选一款或多款您需要的 SDK 或者业务包,然后下载对应应用平台的集成资料包。
将下载后的资料包解压,并将 security-algorithm.aar
放置到工程 libs 目录下,并确认工程 build.gradle
的 dependencies
中有以下依赖:implementation fileTree(include: ['*.aar'], dir: 'libs')
在 涂鸦开发者平台,找到您创建的 SDK。
在上图中,获取AppKey
,以及AppSecret
,并配置在 AndroidManifest.xml
中:
<meta-data
android:name="THING_SMART_APPKEY"
android:value="应用 Appkey" />
<meta-data
android:name="THING_SMART_SECRET"
android:value="应用密钥 AppSecret" />
配置应用证书:
具体内容请联系项目经理。
在 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.**
您需要在 Application
的主线程中初始化 SDK,确保所有进程都能初始化。示例代码如下:
public class ThingSmartApp extends Application {
@Override
public void onCreate() {
super.onCreate();
ThingHomeSdk.init(this);
}
}
appKey
和 appSecret
可以配置在 AndroidManifest.xml
文件里,也可以在初始化代码里初始化。
ThingHomeSdk.init(Application application, String appkey, String appSerect)
在退出应用的时候,调用以下接口可以注销云连接。
ThingHomeSdk.onDestroy();
在 debug 模式下,您可以开启 SDK 的日志开关,查看更多的日志信息,帮助您快速定位问题。
在 release 模式下,建议关闭日志开关。
ThingHomeSdk.setDebugMode(true);
AppKey
、AppSecret
信息。集成 SDK 时,请确认 AppKey
、AppSecret
是否与平台上的信息一致,任意一个不匹配会导致 SDK 无法使用。详细操作,请参考 第四步:集成和设置 Appkey 和 AppSecret。Demo 应用演示 App SDK 的开发流程,展现如何调用 SDK 能力、实现智能家居场景。在开发应用之前,建议您根据需要先按照以下流程完成 Demo 应用的操作。
Demo 应用主要包括:
用户管理:使用手机号或者邮箱进行登录和注册。
家庭管理和设备管理:
设备配网:包括 Wi-Fi 快连配网模式、热点配网模式、有线网关配网、网关子设备配网、蓝牙配网、Mesh 子设备配网。
更多详情,请访问 private-cloud-app-sdk-android。
替换 app
目录下 build.gradle
文件中的 applicationId
为您的应用包名。
确认您已经完成 第三步:集成安全组件 以及 第四步:设置 Appkey,AppSecret 和证书签名。
然后单击运行,运行 Demo。
API 请求提示签名错误(SING_VALIDATE_FALED
)
问题现象:运行 Demo 时提示以下错误:
{
"success": false,
"errorCode" : "SING_VALIDATE_FALED",
"status" : "error",
"errorMsg" : "Permission Verification Failed",
"t" : 1583208740059
}
解决方法:
请检查您的 AppKey、AppSecret 是否正确配置,是否和 准备工作 中获取到的一致。
为什么在涂鸦开发者平台配置了 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'
}
}
}
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈