我正在尝试使用smack库的asmack构建,但在第一步就被塞了进去。下面的代码显示XMPPTCPConnection中的主机是空的。我已经测试了http://asmack.freakempire.de/上可用的jars的4.0.0和4.0.4版本
public class MainActivity extends Activity {
public static final String HOST = "talk.google.com";
public static final int PORT = 5222;
public static final String SERVICE = "gmail.com";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Context context = getApplicationContext();
SmackAndroid asmk = SmackAndroid.init(context);
ConnectionConfiguration connConfig = new ConnectionConfiguration(HOST, PORT, SERVICE);
connConfig.setSecurityMode(SecurityMode.enabled);
connConfig.setReconnectionAllowed(true);
XMPPTCPConnection connection = new XMPPTCPConnection(connConfig);
Log.i("XMPPChatDemoActivity", "Connection host " + connection.getHost());
}
}日志只显示I/XMPPChatDemoActivity(30917): Connection host null行。
我正在一个真正的Android4.0设备上进行测试。ProGuard是禁用的,因为我正在用ant debug模式编译。
发布于 2014-09-12 15:39:57
不,它不会忽略host设置的ConnectionConfiguration。只有在调用connect()之后才初始化“主机”,因为当使用XMPP和DNS SRV时,用于建立连接的实际主机只有在完成DNS查找之后才可用。
https://stackoverflow.com/questions/25807580
复制相似问题