使用該功能前,需在云端開啟產品的“遠程配置”功能。遠程配置可以用于更新設備的配置信息,包括設備的系統參數、網絡參數或者本地策略等等。
說明 遠程配置相關接口參見設備 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) {
// 回復遠程配置失敗
}
});