更新时间:2024-11-20 08:51:33下载pdf
TuyaOS SDK Andriod 版是基于 TuyaOS 技术体系按照物联网设备应用场景进行裁剪、定制而得,适用于任意一款按照涂鸦平台导入规范进行适配导入的安卓平台(支持符合 API 19 及以上级别的安卓版本)。
TuyaOS 是涂鸦独创 IoT OS 操作系统级别的端云 SDK,提供了按照业务需求选择组件,定制 SDK 的能力,是涂鸦赋能开发者的利剑,具备轻量级、互联互通、安全传输、组件丰富、快速开发等关键能力,有效降低开发门槛、缩短开发周期,可广泛应用于智能屏幕设备、可穿戴设备、视频监控、中控网关、智能音箱、智能家电和智能门锁等智能家居设备。
Demo 提供了获取激活码、激活设备、测试 DP点、展示状态日志等功能。 点击下载 Demo 安装包。
注意: 配置 Demo 前请先配置
pid
、uuid
和authkey
参数 。
根据 SDK 的安装方式提供不同的 Demo 配置方法。配置完成的界面如下:
自行编译 SDK.
在local.properties
文件中增加如下代码。
UUID="您的 UUID"
AUTHKEY="您的 Key"
PID="您的 PID"
通过 Demo 安装 SDK .
在配置界面进行配置。
扫描配置二维码进行配置。
说明:通过二维码生成工具,将下方的 JSON 配置代码转换为配置二维码。
{
"PID": "您的PID",
"UUID": "您的UUID",
"AUTHKEY": "您的AUTHKEY"
}
添加实现。
implementation 'com.tuya.smart:tuyasmart-iot_sdk:1.0.7'
implementation 'com.tencent.mars:mars-xlog:1.2.3'
在项目根目录 build.gradle
中添加仓库地址。
maven { url 'https://maven-other.tuya.com/repository/maven-releases/'}
maven { url 'https://maven-other.tuya.com/repository/maven-snapshots/'}
如果开启了混淆功能,在 proguard-rules.pro
文件中添加以下代码。
-keep class com.tuya.smartai.iot_sdk.** {*;}
-keep class com.tencent.mars.** {*;}
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
IoTSDKManager ioTSDKManager = new IoTSDKManager(context);
/**
* 初始化SDK (注意:一个 UUID 不能同时在多个设备上激活)
* @param basePath 存储路径 示例:"/sdcard/tuya_iot/"
* @param productId 产品 ID
* @param uuid 用户 ID
* @param authKey 认证 Key
* @param version 固件版本号(OTA用)
* @param mCallback SDK 回调方法
* @return
*/
ioTSDKManager.initSDK(String basePath, String productId, String uuid, String authorKey, String version, IoTCallback mCallback);
public interface IoTCallback {
/**
* DP 事件接收
* @param event
*
* 事件值(event.value)
* 事件 ID(event.dpid)
* 事件类型(event.type)
* DPEvent.Type.PROP_BOOL
* DPEvent.Type.PROP_VALUE
* DPEvent.Type.PROP_STR
* DPEvent.Type.PROP_ENUM
* DPEvent.Type.PROP_RAW
*/
void onDpEvent(DPEvent event);
//解绑设备回调 (请在此处重启APP进程,否则会影响二次配网)
void onReset();
//收到配网二维码短链(获取失败时为null)
void onShorturl(String url);
/**
* MQTT状态变化
* @param status IoTSDKManager.STATUS_OFFLINE 网络离线;
* IoTSDKManager.STATUS_MQTT_OFFLINE 网络在线 MQTT 离线;
* IoTSDKManager.STATUS_MQTT_ONLINE 网络在线 MQTT 在线
*/
void onMQTTStatusChanged(int status);
//设备激活
void onActive();
//设备初次激活
void onFirstActive();
}
//会进行广播注销等销毁操作
ioTSDKManager.destroy();
测试阶段建议开启日志服务,SDK 的日志会自动保存在您传入的路径中。
注意 生产阶段建议去除日志服务。
/**
* 开启本地日志服务
* @param logPath 日志文件保存路径 示例:"/sdcard/tuya_log/"
* @param cacheDays 日志文件缓存天数
* @return
*/
Log.init(context, logPath, cacheDays);
//刷写日志文件,可以在需要的时候手动触发。isSync : true 为同步 flush,flush 结束后才会返回。 false 为异步 flush,不等待 flush 结束就返回。
Log.flush(isSync)
//销毁本地日志服务, 活动结束或应用退出时调用
Log.close();
//本地解绑 (异步操作,解绑成功会进入onReset回调)
IoTSDKManager.reset();
/**
* 发送 DP 事件
*
* @param id: DP ID
* @param type: 类型 DPEvent.Type
* DPEvent.Type.PROP_BOOL boolean
* DPEvent.Type.PROP_VALUE int
* DPEvent.Type.PROP_STR string
* DPEvent.Type.PROP_ENUM int
* DPEvent.Type.PROP_RAW byte[]
* @param val: 值
* @return
*/
IoTSDKManager.sendDP(int id, int type, Object val)
/**
* 发送多个 DP 事件
*
* @param events: 多个 DP 类型
* @return
*/
IoTSDKManager.sendDP(DPEvent... events)
/**
* 发送 DP 事件带时间戳
*
* @param id: DP ID
* @param type: 类型 DPEvent.Type
* @param val: 值
* @param timestamp: 时间戳,单位为秒
* @return
*/
IoTSDKManager.sendDPWithTimeStamp(int id, int type, Object val, int timestamp)
/**
* 发送多个 DP 事件带时间戳(时间戳需要赋值在 DPEvent.timestamp)
*
* @param events: 多个 DP 类型
* @return
*/
IoTSDKManager.sendDPWithTimeStamp(DPEvent... events)
/**
* 发送 http 请求
* @param apiName: 请求 API
* @param apiVersion: 版本号
* @param jsonMsg: 参数 JSON
* @return
*/
IoTSDKManager.httpRequest(String apiName, String apiVersion, String jsonMsg)
//获取设备 ID
IoTSDKManager.getDeviceId()
//自定义实现网络状态监测,返回值为网络是否离线。SDK已提供默认实现,如无需要不必扩展此方法。
ioTSDKManager = new IoTSDKManager(this) {
@Override
protected boolean isOffline() {
//实现自己的网络状态监测
return super.isOffline();
}
}
说明:根据
ioTSDKManager.initSDK
传入的version
对固件版本进行区分。更新固件包时需要修改固件版本号version
, 示例:1.2.3
。
支持设备端检测升级和 App 触发升级,升级流程如下:
设置回调。代码示例如下。
ioTSDKManager.setUpgradeCallback(new UpgradeEventCallback() {
@Override
public void onUpgradeInfo(String version) {
//收到更新信息版本号:version
//主动触发升级文件下载(收到更新回调后,可以触发)
ioTSDKManager.startUpgradeDownload();
}
@Override
public void onUpgradeDownloadStart() {
//开始升级下载回调
}
@Override
public void onUpgradeDownloadUpdate(int i) {
//下载进度回调 i%
}
@Override
public void upgradeFileDownloadFinished(int result, String file) {
//下载完成回调,result == 0 表示成功,file 为升级文件压缩包路径(建议安装完成后清除)
}
});
以 ZIP 压缩格式上传新版本固件。
收到更新信息回调后,即可触发 ioTSDKManager.startUpgradeDownload
开始升级下载。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈