diff --git a/app/src/main/java/com/ouxuan/oxface/OxFaceApplication.java b/app/src/main/java/com/ouxuan/oxface/OxFaceApplication.java index 540428c..3044fa1 100644 --- a/app/src/main/java/com/ouxuan/oxface/OxFaceApplication.java +++ b/app/src/main/java/com/ouxuan/oxface/OxFaceApplication.java @@ -12,6 +12,7 @@ import com.ouxuan.oxface.utils.LogManager; import com.ouxuan.oxface.utils.MaintenanceScheduler; import com.ouxuan.oxface.utils.MemoryManager; import com.ouxuan.oxface.utils.UtilCodeHelper; +import com.ouxuan.oxface.device.MqttManager; // 添加MQTT管理器导入 import com.blankj.utilcode.util.Utils; /** @@ -32,6 +33,7 @@ public class OxFaceApplication extends Application implements private NetworkManager networkManager; private HealthMonitor healthMonitor; private MaintenanceScheduler maintenanceScheduler; + private MqttManager mqttManager; // 添加MQTT管理器实例 public static OxFaceApplication getInstance() { return instance; @@ -72,10 +74,13 @@ public class OxFaceApplication extends Application implements // 6. 启动维护调度器 initMaintenanceScheduler(); - // 7. 初始化原有的网络工具 + // 7. 初始化MQTT管理器 + initMqttManager(); + + // 8. 初始化原有的网络工具 NetworkUtils.init(this); - // 8. 初始化设备选择数据管理器 + // 9. 初始化设备选择数据管理器 DeviceSelectDataManager.getInstance(this); LogManager.logOperation(TAG, "所有管理器初始化完成,应用已准备好24小时无人值守运行"); @@ -139,6 +144,15 @@ public class OxFaceApplication extends Application implements LogManager.logOperation(TAG, "维护调度器启动"); } + /** + * 初始化MQTT管理器 + */ + private void initMqttManager() { + mqttManager = MqttManager.getInstance(); + mqttManager.initialize(this); + LogManager.logOperation(TAG, "MQTT管理器初始化完成"); + } + // ========== NetworkStateListener 接口实现 ========== @Override @@ -149,6 +163,11 @@ public class OxFaceApplication extends Application implements if (networkManager != null) { networkManager.reinitialize(); } + + // 网络恢复时重新连接MQTT + if (mqttManager != null) { + mqttManager.connectAsync(); + } } @Override @@ -227,6 +246,11 @@ public class OxFaceApplication extends Application implements snapshot.append("维护统计: ").append(maintenanceScheduler.getMaintenanceStats()).append("\n"); } + // MQTT状态 + if (mqttManager != null) { + snapshot.append("MQTT状态: ").append(mqttManager.getConnectionStatusDetail()).append("\n"); + } + snapshot.append("==========================================="); LogManager.logOperation(TAG, snapshot.toString()); @@ -266,6 +290,11 @@ public class OxFaceApplication extends Application implements networkManager.stopNetworkMonitoring(); } + // 停止MQTT管理器 + if (mqttManager != null) { + mqttManager.release(); + } + // 停止日志管理器(最后停止) if (logManager != null) { logManager.stop(); @@ -297,4 +326,8 @@ public class OxFaceApplication extends Application implements public MaintenanceScheduler getMaintenanceScheduler() { return maintenanceScheduler; } + + public MqttManager getMqttManager() { + return mqttManager; + } } \ No newline at end of file diff --git a/app/src/main/java/com/ouxuan/oxface/device/MqttManager.java b/app/src/main/java/com/ouxuan/oxface/device/MqttManager.java index 0f35ccf..bd4bf3b 100644 --- a/app/src/main/java/com/ouxuan/oxface/device/MqttManager.java +++ b/app/src/main/java/com/ouxuan/oxface/device/MqttManager.java @@ -59,7 +59,7 @@ public class MqttManager { // private static final String BROKER_URL = "tcp://" + PRODUCT_ID + ".iotcloud.tencentdevices.com:1883"; // 腾讯云IoT Hub TCP地址 // private static final String BROKER_URL = "" + PRODUCT_ID + ".iotcloud.tencentdevices.com:80"; // 腾讯云IoT Hub TCP地址 // private static final String BROKER_URL = "" + PRODUCT_ID + ".ap-guangzhou.iothub.tencentdevices.com:80"; // 腾讯云IoT Hub TCP地址 WebSocket(80) WebSocketS(443) - private static final String BROKER_URL = null; // 腾讯云IoT Hub TCP地址 WebSocket(80) WebSocketS(443) + private static final String BROKER_URL = null; // 此处动态注册需要BROKER_URL为null,勿动 private static final int KEEP_ALIVE_INTERVAL = 240; // 增加心跳间隔 private static final int CONNECTION_TIMEOUT = 30; // 增加连接超时时间 private static final int QOS = 1;