mac
2024-01-12 c293e3d12571958f7ae7f28260ad3914842ecaa9
2024年01月12日11:06:47

备份一下代码
3个文件已修改
40 ■■■■■ 已修改文件
app/src/main/AndroidManifest.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/test/UniAppMqtt.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/AndroidManifest.xml
@@ -199,6 +199,11 @@
            </intent-filter>
        </service>
        <!--uniMqtt必要的,开启mqtt1883端口一个服务-->
        <service
            android:name="org.eclipse.paho.android.service.MqttService"
            android:exported="false" />
        <meta-data
            android:name="design_height_in_dp"
            android:value="812" />
app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java
@@ -15,6 +15,7 @@
import android.text.TextUtils;
import android.view.View;
import com.alibaba.fastjson.JSONObject;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.hdl.linkpm.sdk.core.exception.HDLException;
@@ -331,8 +332,16 @@
                    HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean();
                    uniCallBackBaseBean.setType(response.getTopic());
                    uniCallBackBaseBean.setData(response.getData());
//                    if (com.hdl.photovoltaic.ui.test.UniAppMqtt.getInstance().getUni()) {
//                        try {
//                            String t = String.format("AndroidToPC/%s/%s", System.currentTimeMillis(), HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL);
//                            com.hdl.photovoltaic.ui.test.UniAppMqtt.getInstance().publish(t, JSONObject.toJSON(uniCallBackBaseBean).toString());
//                        } catch (Exception ignored) {
//                        }
//                    } else {
                    HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean);
//                    }
//                    }
                } else if (msg instanceof LinkResponse) {
                    LinkResponse linkResponse = (LinkResponse) msg;
app/src/main/java/com/hdl/photovoltaic/ui/test/UniAppMqtt.java
@@ -37,7 +37,7 @@
        return clientId;
    }
    final String tag = "MqttRecvClient1";
    final String tag = "uniToAndroid->>>MqttRecvClient--->";
    /**
     * 当前 mqtt client
     */
@@ -178,24 +178,25 @@
     * @param payload 内容
     */
    public void publish(String topic, String payload) throws MqttException {
        //回复时,mqtt主题中的方向要变化,要做方向替换
        topic = topic.replace("PCToAndroid", "AndroidToPC");
        String finalTopic = topic;
        mClient.publish(topic, payload.getBytes(), 1, false, null, new IMqttActionListener() {
            @Override
            public void onSuccess(IMqttToken asyncActionToken) {
                LogUtils.e(tag, "回复主题--->" + finalTopic + "\r\n" + payload);
            }
            @Override
            public void onFailure(IMqttToken asyncActionToken, Throwable exception) {
                LogUtils.e(tag, "回复失败--->" + finalTopic + "\r\n" + exception.getMessage());
            }
        });
    }
    /**
     * 取消订阅
     *
     */
    public void unsubscribe(String topic) throws MqttException {
        mClient.unsubscribe(topic, null, new IMqttActionListener() {
@@ -213,7 +214,6 @@
    /**
     * 断开连接
     *
     */
    public void disconnect() throws MqttException {
        mClient.disconnect(null, new IMqttActionListener() {
@@ -233,7 +233,7 @@
     * uni通过qtt传过来的数据处理
     *
     * @param topic   主题
     * @param payload 内容
     * @param payload 负载内容
     */
    @RequiresApi(api = Build.VERSION_CODES.O)
    void sendMqttToUni(final String topic, String payload) {
@@ -241,27 +241,25 @@
            return;
        }
        String[] split = topic.split("/");
        String event = null;
        for (String s : split) {
            if (s.startsWith("uni_")) {
                event = s;
                break;
            }
        if (split.length < 3) {
            return;
        }
        //表示大类
        String request_module_topic = split[2];
        MqttDCUniMPJSCallback mqttDCUniMPJSCallback = new MqttDCUniMPJSCallback();
        mqttDCUniMPJSCallback.setMqttCallBack(new MqttCallBack() {
            @Override
            public void onResult(Object data) {
                if (null != data)
                    try {
                        //返回数据给uni
                        publish(topic, data.toString());
                    } catch (Exception ignored) {
                    }
            }
        });
        // JSON.parse(payload)
        HdlUniLogic.getInstance().onOtherUniMPEventReceive(HDLUniMP.UNI_APP_ID, topic, payload, mqttDCUniMPJSCallback);
        HdlUniLogic.getInstance().onOtherUniMPEventReceive(HDLUniMP.UNI_APP_ID, request_module_topic, payload, mqttDCUniMPJSCallback);
    }
    private boolean mIsUni = false;