关于使用aho Android API发布消息

关于使用aho Android API发布消息,android,mqtt,messagebroker,paho,Android,Mqtt,Messagebroker,Paho,我学习了一些教程,了解如何从Android设备向代理发布消息。下面是我的尝试,在这一点上,我没有找到教程中提供的方法,比如MqttDeliveryTokenAndroid,因为它不在库中 请让我知道如何正确发布消息,并请提供最近更新的泛美卫生组织Android API的链接,我现在正在使用的API是从泛美卫生组织网站下载的,我上面提到的一些类和方法缺失 代码 NullPointerException是因为connect调用异步方法,并且您需要实现ActionListener 如果成功,您可以订阅

我学习了一些教程,了解如何从Android设备向代理发布消息。下面是我的尝试,在这一点上,我没有找到教程中提供的方法,比如MqttDeliveryTokenAndroid,因为它不在库中

请让我知道如何正确发布消息,并请提供最近更新的泛美卫生组织Android API的链接,我现在正在使用的API是从泛美卫生组织网站下载的,我上面提到的一些类和方法缺失

代码

NullPointerException是因为connect调用异步方法,并且您需要实现ActionListener

如果成功,您可以订阅和发布消息

Log.i(LOGTAG, "MQTT Start");
    MemoryPersistence memPer = new MemoryPersistence();
    final MqttAndroidClient client = new MqttAndroidClient(context, "tcp://192.168.0.13:1883", username, memPer);

    try {
        client.connect(null, new IMqttActionListener() {

            @Override
            public void onSuccess(IMqttToken mqttToken) {
                Log.i(LOGTAG, "Client connected");
                Log.i(LOGTAG, "Topics="+mqttToken.getTopics());

                MqttMessage message = new MqttMessage("Hello, I am Android Mqtt Client.".getBytes());
                message.setQos(2);
                message.setRetained(false);

                try {
                    client.publish("messages", message);

                    Log.i(LOGTAG, "Message published");

                    client.disconnect();
                    Log.i(LOGTAG, "client disconnected");
                } catch (MqttPersistenceException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (MqttException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            }

            @Override
            public void onFailure(IMqttToken arg0, Throwable arg1) {
                // TODO Auto-generated method stub
                Log.i(LOGTAG, "Client connection failed: "+arg1.getMessage());

            }
        });
Log.i(LOGTAG, "MQTT Start");
    MemoryPersistence memPer = new MemoryPersistence();
    final MqttAndroidClient client = new MqttAndroidClient(context, "tcp://192.168.0.13:1883", username, memPer);

    try {
        client.connect(null, new IMqttActionListener() {

            @Override
            public void onSuccess(IMqttToken mqttToken) {
                Log.i(LOGTAG, "Client connected");
                Log.i(LOGTAG, "Topics="+mqttToken.getTopics());

                MqttMessage message = new MqttMessage("Hello, I am Android Mqtt Client.".getBytes());
                message.setQos(2);
                message.setRetained(false);

                try {
                    client.publish("messages", message);

                    Log.i(LOGTAG, "Message published");

                    client.disconnect();
                    Log.i(LOGTAG, "client disconnected");
                } catch (MqttPersistenceException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (MqttException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            }

            @Override
            public void onFailure(IMqttToken arg0, Throwable arg1) {
                // TODO Auto-generated method stub
                Log.i(LOGTAG, "Client connection failed: "+arg1.getMessage());

            }
        });