打印Mqtt主题并选择一个以订阅其中一个

时间:2019-07-16 14:16:44

标签: java android mqtt paho

我正在苦苦挣扎,这个问题是关于在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]);

            }

1 个答案:

答案 0 :(得分:0)

首先,让我们谈谈您用来获取主题列表的方法的目的(根据您的代码):

Log.i("ERROR ","Topic="+mqttToken.getTopics());

上述方法getTopics()的目的不是向您提供MQTT Broker上可用主题的详尽列表。此方法返回与令牌关联的主题的名称。并且,如果您经过此Link,您将看到该方法在操作成功完成时被调用。此外,您还可以查看IMqttToken的Java文档。

也许您可以详细说明用例,以便听众可以帮助您,获取所有活动主题都不是理想的解决方案。