|
@ -570,12 +570,44 @@ public class MqttManager { |
|
|
if (status == Status.OK) { |
|
|
if (status == Status.OK) { |
|
|
LogManager.logDebug(TAG, "消息发布成功"); |
|
|
LogManager.logDebug(TAG, "消息发布成功"); |
|
|
} else { |
|
|
} else { |
|
|
LogManager.logError(TAG, "消息发布失败: " + errMsg); |
|
|
|
|
|
|
|
|
String errorMsg = errMsg != null ? errMsg : "未知错误"; |
|
|
|
|
|
LogManager.logError(TAG, "消息发布失败: " + errorMsg); |
|
|
|
|
|
|
|
|
|
|
|
// 记录异常信息以便调试 |
|
|
|
|
|
if (cause != null) { |
|
|
|
|
|
LogManager.logError(TAG, "发布异常详情", cause); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public void onSubscribeCompleted(Status status, IMqttToken asyncActionToken, Object userContext, String errMsg, Throwable cause) { |
|
|
public void onSubscribeCompleted(Status status, IMqttToken asyncActionToken, Object userContext, String errMsg, Throwable cause) { |
|
|
|
|
|
// 记录详细的调试信息 |
|
|
|
|
|
String tokenInfo = "null"; |
|
|
|
|
|
String userContextInfo = "null"; |
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
|
if (asyncActionToken != null && asyncActionToken.getTopics() != null) { |
|
|
|
|
|
tokenInfo = java.util.Arrays.toString(asyncActionToken.getTopics()); |
|
|
|
|
|
} |
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
LogManager.logError(TAG, "获取token信息失败", e); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
|
if (userContext instanceof MQTTRequest) { |
|
|
|
|
|
userContextInfo = userContext.toString(); |
|
|
|
|
|
} else if (userContext != null) { |
|
|
|
|
|
userContextInfo = userContext.toString(); |
|
|
|
|
|
} |
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
LogManager.logError(TAG, "获取userContext信息失败", e); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
String debugInfo = String.format("onSubscribeCompleted: status[%s], topics[%s], userContext[%s], errMsg[%s]", |
|
|
|
|
|
status != null ? status.name() : "null", tokenInfo, userContextInfo, errMsg != null ? errMsg : "null"); |
|
|
|
|
|
LogManager.logInfo(TAG, "订阅回调详情: " + debugInfo); |
|
|
|
|
|
|
|
|
if (status == Status.OK) { |
|
|
if (status == Status.OK) { |
|
|
LogManager.logInfo(TAG, "主题订阅成功: " + subscribeTopic); |
|
|
LogManager.logInfo(TAG, "主题订阅成功: " + subscribeTopic); |
|
|
} else { |
|
|
} else { |
|
@ -583,15 +615,26 @@ public class MqttManager { |
|
|
LogManager.logError(TAG, "主题订阅失败: " + errorMsg); |
|
|
LogManager.logError(TAG, "主题订阅失败: " + errorMsg); |
|
|
|
|
|
|
|
|
// 检查是否是由于代理程序不可用导致的错误 |
|
|
// 检查是否是由于代理程序不可用导致的错误 |
|
|
if (errorMsg.contains("代理程序不可用")) { |
|
|
|
|
|
|
|
|
if (errorMsg != null && errorMsg.contains("代理程序不可用")) { |
|
|
LogManager.logError(TAG, "MQTT代理程序不可用,请检查网络连接和腾讯云IoT设备配置"); |
|
|
LogManager.logError(TAG, "MQTT代理程序不可用,请检查网络连接和腾讯云IoT设备配置"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 记录异常信息以便调试 |
|
|
|
|
|
if (cause != null) { |
|
|
|
|
|
LogManager.logError(TAG, "订阅异常详情", cause); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public void onUnSubscribeCompleted(Status status, IMqttToken asyncActionToken, Object userContext, String errMsg, Throwable cause) { |
|
|
public void onUnSubscribeCompleted(Status status, IMqttToken asyncActionToken, Object userContext, String errMsg, Throwable cause) { |
|
|
LogManager.logInfo(TAG, "取消订阅完成: " + errMsg); |
|
|
|
|
|
|
|
|
String message = errMsg != null ? errMsg : "取消订阅完成"; |
|
|
|
|
|
LogManager.logInfo(TAG, "取消订阅完成: " + message); |
|
|
|
|
|
|
|
|
|
|
|
// 记录异常信息以便调试 |
|
|
|
|
|
if (cause != null) { |
|
|
|
|
|
LogManager.logError(TAG, "取消订阅异常详情", cause); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|