最近在做基于XMPP协议的Android IM项目。国内有关这方面的资料实在相当少,碰了很多壁。
Android上用到的API是asmack 。它和smack是不一样的,我用smack提供的JAR包尝试连接XMPP服务器,发现有各种问题,后面才发现谷歌提供有asmack专用于android.将asmack.jar下载下来后放入Android项目内,就可以用下面的代码注册和登录账户了(当然你必须要先有一个正在运行的XMPP服务端,关于服务端的编译可以看:http://blog.csdn.net/wu55uw/article/details/8260398)。
下载地址:http://code.google.com/p/asmack/downloads/list
另外谷歌上还提供了一个叫qsmack的,可是我下下来后发现不能用。下载下来的qsmack.jar包里面全是.java文件。
下面是用来登录和注册的代码:
// Create the configuration for this new connection
ConnectionConfiguration connConfig = new ConnectionConfiguration("192.168.1.133", 5222);
connConfig.setReconnectionAllowed(true);
connConfig.setSecurityMode(ConnectionConfiguration.SecurityMode.enabled);
connConfig.setSASLAuthenticationEnabled(true);
connConfig .setTruststorePath("/system/etc/security/cacerts.bks");
connConfig.setTruststorePassword("changeit");
connConfig.setTruststoreType("bks");
Connection connection = new XMPPConnection(connConfig);
// Connect to the server
try {
// Log into the server
connection.connect();
//登录
connection.login("wu", "wwch1985", "Work");
//注册:
//connection.getAccountManager().createAccount("liuyun", "123"); //创建一个用户
} catch (XMPPException e) {
e.printStackTrace();
}