设备固件 OTA 升级 UI 业务包

更新时间:2024-04-01 06:17:45下载pdf

设备 OTA(Over-the-air)升级指设备通过网络进行固件的下载并自动更新的过程。涂鸦固件升级 UI 业务包可以帮助您的 App 快速集成设备固件升级的能力。

OTA 业务包集成

创建工程

在 Android Studio 中建立您的工程,接入智能生活 App SDK,并完成业务包 框架接入

如果您目前使用的是 3.22.0 版本 UI 业务包,请务必保证项目中依赖的智能生活 SDK 版本与 UI 业务包版本一致。

module 的 build.gradle 配置


dependencies {
    api enforcedPlatform("com.thingclips.smart:thingsmart-BizBundlesBom:${biz_bom_version}")
    implementation 'com.thingclips.smart:thingsmart-bizbundle-ota'
    api "com.thingclips.smart:thingsmart:${sdk_version}}"
}

功能调用

查询固件升级的可用性

判断当前设备是否支持固件升级能力。

接口说明

boolean isSupportUpgrade(String devId);

参数说明

参数 说明
devId 设备 ID

示例代码

AbsOtaCallerService absOtaCallerService = MicroContext.getServiceManager().findServiceByInterface(AbsOtaCallerService.class.getName());
		if (absOtaCallerService != null) {
			if (absOtaCallerService.isSupportUpgrade(devId)) {
				// support ota
			} else {
				// can not support ota ability
			}
		}

进入固件升级页面

如果当前设备支持固件升级能力,那么可以前往固件升级页面,并开始固件升级流程。

接口说明

void goFirmwareUpgrade(Context context, String devId);

参数说明

参数 说明
context 固件升级 Activity 的 context 对象
devId 设备 ID

示例代码

AbsOtaCallerService absOtaCallerService = MicroContext.getServiceManager().findServiceByInterface(AbsOtaCallerService.class.getName());
		if (absOtaCallerService != null) {
			if (absOtaCallerService.isSupportUpgrade(devId)) {
				absOtaCallerService.goFirmwareUpgrade(this, devId);
			} else {
				// This device can not support ota
			}
		}

自定义退出升级页面的逻辑

对于支持固件升级的 强制升级 类型的设备,如果处于升级中状态,UI 业务包支持自行处理退出固件升级页面的逻辑。例如,固件升级过程中,强制升级类型的设备可能需要返回至应用首页,而不是直接返回上一级页面。

接口说明

void setOtaBehaviorListener(IOtaBehaviorListener callback);

参数说明

参数 说明
IOtaBehaviorListener 固件升级过程行为回调

示例代码

AbsOtaCallerService absOtaCallerService = MicroContext.getServiceManager()
	.findServiceByInterface(AbsOtaCallerService.class.getName());
absOtaCallerService.setOtaBehaviorListener(new IOtaBehaviorListener() {
				@Override
				public void onBackPressedWhenForceUpgrading(Activity activity) {
					if (activity != null) {
					activity.finish();
					}
					// do something after OTA page closed
				}
			});