使用该功能前,需在云端开启产品的“远程配置”功能。远程配置可以用于更新设备的配置信息,包括设备的系统参数、网络参数或者本地策略等等。
说明 远程配置相关接口参见设备 IDeviceCOTA。
主动获取配置
String COTA_get = "{" + " \"id\": 123," + " \"version\": \"1.0\"," +
" \"params\": {" + "\"configScope\": \"product\"," + "\"getType\": \"file\"" +
" }," + " \"method\": \"thing.config.get\"" + "}";
RequestModel<Map> requestModel = JSONObject.parseObject(COTA_get, new TypeReference<RequestModel<Map>>() {
}.getType());
LinkKit.getInstance().getDeviceCOTA().COTAGet(requestModel, new IConnectSendListener() {
@Override
public void onResponse(ARequest aRequest, AResponse aResponse) {
// 获取远程配置结果成功
}
@Override
public void onFailure(ARequest aRequest, AError aError) {
// 获取远程配置失败
}
});
订阅获取
设备端可以通过订阅获取远程配置信息
// 注意:云端目前有做限制,一个小时只能全品类下发一次 COTA 更新
LinkKit.getInstance().getDeviceCOTA().setCOTAChangeListener(new IConnectRrpcListener() {
@Override
public void onSubscribeSuccess(ARequest aRequest) {
// 订阅成功
}
@Override
public void onSubscribeFailed(ARequest aRequest, AError aError) {
// 订阅失败
}
@Override
public void onReceived(ARequest aRequest, IConnectRrpcHandle iConnectRrpcHandle) {
// 接收到远程配置下行数据
if (aRequest instanceof MqttRrpcRequest){
// 云端下行数据 返回数据示例参见 Demo
// ((MqttRrpcRequest) aRequest).payloadObj;
}
}
@Override
public void onResponseSuccess(ARequest aRequest) {
// 回复远程配置成功
}
@Override
public void onResponseFailed(ARequest aRequest, AError aError) {
// 回复远程配置失败
}
});