使用該功能前,需在云端開啟產品的“遠程配置”功能。遠程配置可以用于更新設備的配置信息,包括設備的系統參數、網絡參數或者本地策略等等。

說明 遠程配置相關接口參見設備 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) {
        // 回復遠程配置失敗
    }
});