20. 网络模块升级功能
网络模块信息、网络模块升级等操作
20.1. 是否支持网络模块功能
//Step0. WatchManager是WatchOpImpl的子类,须在1.3配置好sdk
WatchManager watchManager = WatchManager.getInstance();
//Step1. 获取缓存的手表配置信息
WatchConfigure configure = watchManager.getWatchConfigure(watchManager.getConnectedDevice());
if (null == configure) {
//可以尝试向设备请求一次
watchManager.requestDeviceConfigure(new OnWatchOpCallback<WatchConfigure>() {
@Override
public void onSuccess(WatchConfigure result) {
//获取手表配置信息成功
}
@Override
public void onFailed(BaseError error) {
//获取手表配置信息失败
//error -- 错误信息
}
});
return;
}
configure.getFunctionOption().isSupportNetworkModule(); //是否支持网络模块
20.2. 查询网络模块基础信息
//Step0. WatchManager是WatchOpImpl的子类,须在1.3配置好sdk
WatchManager watchManager = WatchManager.getInstance();
//Step1. 初始化网络模块升级操作对象
NetworkOpImpl networkOp = NetworkOpImpl.instance(watchManager);
//Step2. 注册网络事件监听器
final OnNetworkListener listener = new OnNetworkListener() {
@Override
public void onNetworkInfo(BluetoothDevice device, NetworkInfo info) {
//回调网络模块基础信息
// info.getVid(); //4G模块厂商ID
// info.isMandatoryOTA(); //是否需要强制升级, 升级失败后触发
// info.getVersion(); //4G模块版本号
}
@Override
public void onNetworkOTAState(BluetoothDevice device, NetworkOTAState state) {
//回调网络模块升级状态
}
};
networkOp.addOnNetworkListener(listener);
//Step3. 执行查询网络信息接口,并等待结果回调
networkOp.queryNetworkInfo(watchManager.getConnectedDevice(), new OnOperationCallback<Boolean>() {
@Override
public void onSuccess(Boolean result) {
//回调操作成功结果
}
@Override
public void onFailed(BaseError error) {
//回调操作失败
//error -- 错误描述
}
});
//StepN. 不需要监听时移除监听器
// networkOp.removeOnNetworkListener(listener);
20.2.1. 获取缓存的网络模块信息
//WatchManager是WatchOpImpl的子类,须在1.3配置好sdk
WatchManager watchManager = WatchManager.getInstance();
final DeviceInfo deviceInfo = watchManager.getDeviceInfo();
if (null == deviceInfo) return; //设备未初始化完成
//获取网络模块信息
final NetworkInfo networkInfo = deviceInfo.getNetworkInfo();
if(null == networkInfo){//设备不支持网络模块功能
//可能还没更新,也可以按照上面接口查询下
return;
}
20.3. 开始网络模块OTA
//Step0. WatchManager是WatchOpImpl的子类,须在1.3配置好sdk
WatchManager watchManager = WatchManager.getInstance();
//Step1. 初始化网络模块升级操作对象
NetworkOpImpl networkOp = NetworkOpImpl.instance(watchManager);
if (networkOp.isNetworkOTA()) {
//正在OTA
return;
}
//执行开始网络OTA
//filePath --- 4G模块升级文件路径
networkOp.startNetworkOTA(watchManager.getConnectedDevice(), new OTAParam(filePath), new OnNetworkOTACallback() {
@Override
public void onStart() {
//回调OTA开始
}
@Override
public void onProgress(int progress) {
//回调OTA进度
}
@Override
public void onCancel() {
//回调OTA被取消
}
@Override
public void onStop() {
//回调OTA成功
}
@Override
public void onError(int code, String message) {
//回调OTA异常
//code --- 错误码
//message --- 错误描述
}
});
Important
必须设备支持4G模块才能进行功能操作
升级过程中不能执行其他命令操作
20.4. 网络模块OTA异常回调
//Step1. WatchManager是WatchOpImpl的子类,须在1.3配置好sdk
WatchManager watchManager = WatchManager.getInstance();
//Step2. 注册手表事件监听器
final OnWatchCallback watchCallback = new OnWatchCallback() {
@Override
public void onNetworkModuleException(BluetoothDevice device, NetworkInfo info) {
//回调升级模块升级异常,需要强制升级
//info --- 网络模块基本信息
}
};
watchManager.registerOnWatchCallback(watchCallback);
//StepN. 不需要监听时注销监听器
// watchManager.unregisterOnWatchCallback(watchCallback);
20.5. 网络模块OTA接口流程图
20.6. 网络模块升级包差分升级策略
sdk_map.json
{
"cursdk": {
"version": "gx318l_h6_v0022_p7",
"vendor": "归芯科技",
"chip": "BR28"
},
"map": [
{
"version": "gx318l_h6_v0022_p5",
"pakage": "gx318l_h6_v0022_p5_to_gx318l_h6_v0022_p7.diff"
},
{
"version": "gx318l_h6_v0022_p6",
"pakage": "gx318l_h6_v0022_p6_to_gx318l_h6_v0022_p7.diff"
}
]
}
字段说明
参数 |
含义 |
|---|---|
cursdk |
包含当前包信息,例如:版本号、供应商信息等 |
map |
映射规则,里面已数组形式提供 |