使用 Android Link SDK 接入

更新时间:

目标

设备能通过 概述 及少量的修改就可以快速接入 Tuya IoT Core on AliCloud (hedv)项目,使设备具有连云的能力。

前置条件

步骤

image

使用 AndroidStudio 打开下载好的工程文件

在 Gradle Scripts 下的 local.properties 中,修改 SDK Location 配置,定位到自己电脑上 Android SDK 目录

修改认证方式(二选一)

两种方式:替换证书、采用 tcp 连接。

tcp 连接是不安全的,建议您仅在测试验证中使用。

正式环境中,建议采用 TLS 加密传输,可以采用替换证书方案。

替换证书(二选一)

一、代码替换

  1. 在 app/src/main 目录下,新建 assets 文件夹,将 tuyarootca.crt 复制到该目录下。

  2. 在 app/src/main/java/com.aliyun.alink.devicesdk 目录下,manager/InitManager.java 文件中,找到 Step4:mqtt 设置,params.mqttClientConfig = clientConfig; 前加入

// 从应用资源中加载根证书文件
try {
    // 从assets目录加载证书文件为字节数组
    String certFileName = "tuyarootca.crt";
    java.io.InputStream assetStream = context.getAssets().open(certFileName);

    // 读取字节数组
    byte[] certBytes = new byte[assetStream.available()];
    assetStream.read(certBytes);
    assetStream.close();

    // 创建字节数组输入流
    clientConfig.channelRootCrtFile = new java.io.ByteArrayInputStream(certBytes);

    AppLog.d(TAG, "已成功加载证书文件: " + certFileName + ",大小: " + certBytes.length + " 字节");
} catch (Exception e) {
    AppLog.e(TAG, "加载根证书失败: " + e.getMessage());
}

二、手动替换 Gradle 环境下 Cache 的证书文件

  1. 在 app/src/main/java/com.aliyun.alink.devicesdk 目录下,app/DemoApplication.java 文件中 130 行,进入 MqttInitParams 定义

MqttInitParams initParams = new MqttInitParams(productKey, productSecret, deviceName, deviceSecret, MqttConfigure.MQTT_SECURE_MODE_TLS);
  1. 点击上方:Choose Source,找到 assets 目录

image

  1. 替换 root_s1.crt 为 tuyarootca.crt

采用 tcp 连接

在 app/src/main/java/com.aliyun.alink.devicesdk 目录下,manager/InitManager.java 文件中,找到 Step4:mqtt 设置,params.mqttClientConfig = clientConfig; 前加入

clientConfig.secureMode = 3;

并在后续三元组信息中,改为 1883 端口

取消物模型初始化(可选)

如果您不需要使用物模型相关功能,可以在 app/src/main/java/com.aliyun.alink.devicesdk 目录下,manager/InitManager.java 文件中,找到 Step5:高阶功能配置,默认均为关闭状态,其中ioTDMConfig.enableThingModel = true; 改为 false

填入自己的设备三元组信息

res>raw>deviceinfo中填入自己设备的三元组信息

  1. 替换域名,选择端口 "mqttHost": "si-***********.tuyacloud.com:8883",(tcp 连接为 1883)

  2. 替换三元组信息

    "productKey": "*********",

    "deviceName": "******************",

    "deviceSecret": "*************************",

编译运行

构建 Android 项目,并运行,提示“初始化成功”,或者去平台查看设备连接状态。

AndroidLinkSDK.zip