使用該功能前,需在雲端開啟產品的“遠程配置”功能。遠程配置可以用於更新裝置的配置資訊,包括裝置的系統參數、網路參數或者本地策略等等。
說明 遠程配置相關介面參見裝置 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) {
// 回複遠程配置失敗
}
});