我正在苦苦挣扎,这个问题是关于在Android的多个textview中显示来自代理服务器的可用mqtt主题,然后选择其中一个订阅主题
final MqttAndroidClient client =new MqttAndroidClient(getApplicationContext(),"tcp://iot.eclipse.org:1883","12d45454");
try {
client.connect(mqttConnectOptions, null, new IMqttActionListener() {
@Override
public void onSuccess(IMqttToken mqttToken) {
DisconnectedBufferOptions disconnectedBufferOptions = new DisconnectedBufferOptions();
disconnectedBufferOptions.setBufferEnabled(true);
disconnectedBufferOptions.setBufferSize(100);
disconnectedBufferOptions.setPersistBuffer(false);
disconnectedBufferOptions.setDeleteOldestMessages(false);
Log.i("ERROR ","Topic="+mqttToken.getTopics());
textview1.setText(mqttToken.getTopics()[0]);
}
答案 0 :(得分:0)
首先,让我们谈谈您用来获取主题列表的方法的目的(根据您的代码):
Log.i("ERROR ","Topic="+mqttToken.getTopics());
上述方法getTopics()的目的不是向您提供MQTT Broker上可用主题的详尽列表。此方法返回与令牌关联的主题的名称。并且,如果您经过此Link,您将看到该方法在操作成功完成时被调用。此外,您还可以查看IMqttToken的Java文档。
也许您可以详细说明用例,以便听众可以帮助您,获取所有活动主题都不是理想的解决方案。