android 2.1应用程序中的mqtt客户端

android 2.1应用程序中的mqtt客户端,android,mqtt,Android,Mqtt,我在使用fusesource mqtt-client-java1.4-uber-1.0(在android应用程序中)时遇到一些问题。当我提供错误的IP或mqtt代理未在正确的IP上运行时,它会发出消息“无法连接(回调)”而不是“无法连接(侦听器)”的警报。当我提供正确的ip并且代理正在运行时,不会出现任何警报。我猜侦听器根本不工作,而且连接的成功回调不起作用。有什么想法吗?下面是android活动的完整代码 我正在使用此版本的mqtt客户端: 我还尝试了不同的messe代理(服务器),它们是和

我在使用fusesource mqtt-client-java1.4-uber-1.0(在android应用程序中)时遇到一些问题。当我提供错误的IP或mqtt代理未在正确的IP上运行时,它会发出消息“无法连接(回调)”而不是“无法连接(侦听器)”的警报。当我提供正确的ip并且代理正在运行时,不会出现任何警报。我猜侦听器根本不工作,而且连接的成功回调不起作用。有什么想法吗?下面是android活动的完整代码

我正在使用此版本的mqtt客户端: 我还尝试了不同的messe代理(服务器),它们是和

package racenet.mqtt;
导入java.net.URISyntaxException;
导入org.fusesource.hawtbuf.Buffer;
导入org.fusesource.hawtbuf.UTF8Buffer;
导入org.fusesource.mqtt.client.Callback;
导入org.fusesource.mqtt.client.CallbackConnection;
导入org.fusesource.mqtt.client.Listener;
导入org.fusesource.mqtt.client.mqtt;
导入racenet.mqtt.R;
导入android.app.Activity;
导入android.app.AlertDialog;
导入android.os.Bundle;
公共类MQTTActivity扩展了活动{
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MQTT MQTT=新的MQTT();
试一试{
mqtt.setHost(“tcp://proper-ip-here:1883");
}捕获(URISyntaxException e){
新建AlertDialog.Builder(MQTTActivity.this)
.setMessage(“无法设置主机”)
.setNeutralButton(“确定”,空)
.show();
}
final CallbackConnection connection=mqtt.CallbackConnection();
connection.listener(新的listener(){
未连接的公共空间(){
新建AlertDialog.Builder(MQTTActivity.this)
.setMessage(“已连接(侦听器)”)
.setNeutralButton(“确定”,空)
.show();
}
公共空间已断开连接(){
新建AlertDialog.Builder(MQTTActivity.this)
.setMessage(“已断开连接(侦听器)”)
.setNeutralButton(“确定”,空)
.show();
}
失败时公共无效(可丢弃arg0){
新建AlertDialog.Builder(MQTTActivity.this)
.setMessage(“失败(侦听器)”)
.setNeutralButton(“确定”,空)
.show();
}
发布时公共无效(UTF8缓冲区arg0、缓冲区arg1、可运行arg2){
新建AlertDialog.Builder(MQTTActivity.this)
.setMessage(“发布(侦听器)”)
.setNeutralButton(“确定”,空)
.show();
}
});
connection.connect(新回调(){
失败时公共无效(可丢弃值){
新建AlertDialog.Builder(MQTTActivity.this)
.setMessage(“无法连接(回调)”)
.setNeutralButton(“确定”,空)
.show();
}
成功时公开作废(作废v){
新建AlertDialog.Builder(MQTTActivity.this)
.setMessage(“已连接(回调)”)
.setNeutralButton(“确定”,空)
.show();
}
});
}
}

现在有一个由IBM贡献的MQTT客户机Java实现,作为Eclipse上的开放源代码-

好吧,我现在换成了MeQanTT,它更简单,更适合我的需要,并且可以正常工作;)如果已经提到了其他Android客户端,那么您可能想知道,到本月底,应该会有一个新的用于MQTT的可靠的开源Java客户端,它也应该能够在Android上工作-
package racenet.mqtt;

import java.net.URISyntaxException;

import org.fusesource.hawtbuf.Buffer;
import org.fusesource.hawtbuf.UTF8Buffer;
import org.fusesource.mqtt.client.Callback;
import org.fusesource.mqtt.client.CallbackConnection;
import org.fusesource.mqtt.client.Listener;
import org.fusesource.mqtt.client.MQTT;

import racenet.mqtt.R;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;

public class MQTTActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        MQTT mqtt = new MQTT();

        try {

            mqtt.setHost("tcp://proper-ip-here:1883");

        } catch (URISyntaxException e) {

            new AlertDialog.Builder(MQTTActivity.this)
                .setMessage("Could not set host")
                .setNeutralButton("OK", null)
                .show();
        }

        final CallbackConnection connection = mqtt.callbackConnection();
        connection.listener(new Listener() {

            public void onConnected() {

                new AlertDialog.Builder(MQTTActivity.this)
                    .setMessage("Connected (listener)")
                    .setNeutralButton("OK", null)
                    .show();
            }

            public void onDisconnected() {

                new AlertDialog.Builder(MQTTActivity.this)
                    .setMessage("Disconnected (listener)")
                    .setNeutralButton("OK", null)
                    .show();
            }

            public void onFailure(Throwable arg0) {

                new AlertDialog.Builder(MQTTActivity.this)
                    .setMessage("Failure (listener)")
                    .setNeutralButton("OK", null)
                    .show();
            }

            public void onPublish(UTF8Buffer arg0, Buffer arg1, Runnable arg2) {

                new AlertDialog.Builder(MQTTActivity.this)
                    .setMessage("Publish (listener)")
                    .setNeutralButton("OK", null)
                    .show();
            }
        });

        connection.connect(new Callback<Void>() {

            public void onFailure(Throwable value) {

                new AlertDialog.Builder(MQTTActivity.this)
                    .setMessage("Could not connect (callback)")
                    .setNeutralButton("OK", null)
                    .show();
            }

            public void onSuccess(Void v) {

                new AlertDialog.Builder(MQTTActivity.this)
                    .setMessage("Connected (callback)")
                    .setNeutralButton("OK", null)
                    .show();
            }
        });
    }
}