wjc
2025-01-10 2e91f8abdcb87feda9e237895d4460a19fd7aed8
app/src/main/java/com/hdl/photovoltaic/other/HdlMqttLogic.java
@@ -1,18 +1,26 @@
package com.hdl.photovoltaic.other;
import android.provider.Settings;
import android.text.TextUtils;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
import com.hdl.hdlhttp.HxHttp;
import com.hdl.linkpm.sdk.core.exception.HDLException;
import com.hdl.photovoltaic.HDLApp;
import com.hdl.photovoltaic.bean.HttpResponsePack;
import com.hdl.photovoltaic.bean.MqttInfo;
import com.hdl.photovoltaic.internet.HttpClient;
import com.hdl.photovoltaic.internet.api.HttpApi;
import com.hdl.photovoltaic.listener.BaseSuccessFailureCallBeak;
import com.hdl.photovoltaic.listener.CloudCallBeak;
import com.hdl.photovoltaic.ui.bean.CloudInverterChildDeviceBean;
import com.hdl.photovoltaic.ui.bean.DeviceRemoteInfo;
import java.lang.reflect.Type;
import java.util.List;
import java.util.Random;
import io.reactivex.rxjava3.disposables.Disposable;
@@ -40,40 +48,38 @@
    }
    /**
     * 获取逆变器(获取设备远程通讯信息)
     * 获取mqtt远程连接数据
     *
     * @param homeId        住宅Id
     * @param spk           spk
     * @param mac           设备mac
     * @param homeType      住宅类型 (1.ZIGBEE 2.BUSPRO 3.A 4.ALL)
     * @param cloudCallBeak 回调
     */
    public void getDeviceRemoteInfo(String homeId, String spk, String mac, CloudCallBeak<String> cloudCallBeak) {
        String requestUrl = HttpApi.POST_Device_remoteInfo;
    public void getMqttRemoteInfo(String homeType, CloudCallBeak<MqttInfo> cloudCallBeak) {
        String requestUrl = HttpApi.POST_Mqtt_GetRemoteInfo;
        int randomNumberClientId = new Random().nextInt(1000000000);
        String deviceUuid = Settings.System.getString(HDLApp.getInstance().getContentResolver(), Settings.System.ANDROID_ID);
        JsonObject json = new JsonObject();
        json.addProperty("homeId", homeId);
        json.addProperty("spk", spk);
        json.addProperty("mac", mac);
        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), true, true, new BaseSuccessFailureCallBeak() {
        json.addProperty("attachClientId", randomNumberClientId);
        json.addProperty("homeType", homeType);
        json.addProperty("deviceUuid", deviceUuid);
        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
            @Override
            public void onSuccess(HttpResponsePack httpResponsePack) {
//                if (httpResponsePack != null && httpResponsePack.getData() != null) {
//                    Gson gson = new Gson();
//                    String json = gson.toJson(httpResponsePack.getData());
//                    Type typeOfT = new TypeToken<List<CloudInverterChildDeviceBean>>() {
//                    }.getType();
//                    if (cloudCallBeak != null) {
//                        cloudCallBeak.onSuccess("list");
//                    }
//                }
            public void onSuccess(String jsonStr) {
                Type type = new TypeToken<MqttInfo>() {
                }.getType();
                MqttInfo mqttInfo = new Gson().fromJson(jsonStr, type);
                if (cloudCallBeak != null) {
                    cloudCallBeak.onSuccess(mqttInfo);
                }
            }
            @Override
            public void onFailure(Exception exception) {
            public void onFailure(HDLException e) {
                if (cloudCallBeak != null) {
                    cloudCallBeak.onFailure(exception);
                    cloudCallBeak.onFailure(e);
                }
            }
        });
    }
}