1. 固件升级

固件升级主要用于修复设备 bug 和增加设备新功能。固件升级主要分两种,第一种是设备升级,第二种是 MCU 升级。升级的接口位于 ITuyaOta 中。 从 SDK 2.9.1 版本起支持 Zigbee 子设备升级。

1.1. 查询固件升级信息

接口说明

Wi-Fi、Zigbee 网关、摄像头等设备初始化接口

ITuyaOta newOTAInstance(String devId)

参数说明

参数 说明
devId 设备 id

接口说明

子设备初始化接口

ITuyaOta newOTAInstance(String meshId, String devId, String nodeId);

参数说明

参数 说明
meshId Zigbee 网关 id
devId Zigbee 子设备 id
nodeId Zigbee 子设备 mac 地址(从子设备的 DeviceBean 获取)

示例代码

获取固件升级信息

TuyaHomeSdk.newOTAInstance(mDevId).getOtaInfo(new IGetOtaInfoCallback({
    @Override
    void onSuccess(List<UpgradeInfoBean> list){

    }
    @Override
    void onFailure(String code, String error);

});

TuyaHomeSdk.newOTAInstance("xxxmeshId","xxxdevId","xxxmac address").getOtaInfo(new IGetOtaInfoCallback({
    @Override
    void onSuccess(List<UpgradeInfoBean> list){

    }
    @Override
    void onFailure(String code, String error);

});

UpgradeInfoBean返回固件升级的信息,提供以下信息

字段 类型 描述
upgradeStatus int 升级状态,0 :无新版本 1 :有新版本 2 :在升级中
version String 最新版本
currentVersion String 当前版本
timeout int 超时时间,单位:秒
upgradeType int 0 :app 提醒升级 2: app 强制升级 3: 检测升级
type int 0: Wi-Fi 设备 1:蓝牙设备 2:GPRS 设备 3:zigbee 设备 9: MCU
typeDesc String 模块描述
lastUpgradeTime long 上次升级时间,单位:毫秒

示例代码

iTuyaOta.getOtaInfo(new IGetOtaInfoCallback() {
    @Override
    public void onSuccess(List<UpgradeInfoBean> list) {

        }
    }

    @Override
    public void onFailure(String code, String error) {
        L.e(TAG, "check error " + code + "----error=" + error);
    }
        });

1.2. 设置升级状态回调

OTA 之前需要注册监听,以实时获取升级状态

示例代码

//otaType 升级的设备类型,同`UpgradeInfoBean`的type字段
iTuyaOta.setOtaListener(new IOtaListener() {
    @Override
    public void onSuccess(int otaType) {

    }

    @Override
    public void onFailure(int otaType, String code, String error) {

    }

    @Override
    public void onProgress(int otaType, int progress) {

    }
});

1.3. 开始升级

调用该方法开始升级,调用后注册的 OTA 监听会把升级状态返回回来,以便开发者构建 UI

示例代码

iTuyaOta.startOta();

1.4. 销毁

离开升级页面后要销毁,回收内存。

示例代码

iTuyaOta.onDestroy();

results matching ""

    No results matching ""