2014-09-12 46 views
0

我正在嘗試使用smack庫的asmack版本,但在第一步中得到了stucked。以下代碼顯示XMPPTCPConnection中的主機爲空。我測試版本的罐子的4.0.0和4.0.4在http://asmack.freakempire.de/asmack XMPPTCPConnection忽略主機

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線。

我正在測試一個真正的android 4.0設備。 ProGuard被禁用,因爲我正在編譯ant debug模式。

回答

0

不,它不會忽略ConnectionConfiguration的host設置。在你呼叫connect()之後,「主機」才被初始化,因爲當使用帶有DNS SRV RR的XMPP時,用於建立連接的實際主機只有在DNS查找完成後纔可用。

+0

謝謝@流利。我從一個連接到gtalk服務的完整例子開始,並且因爲它失敗了,我一直在刪除代碼以獲得很好的工作效果,而上面所討論的是我得到的結果:s – clapas 2014-09-12 15:44:43