2010-09-20 63 views
3

我在Android應用程序中有一個按鈕。當點擊該按鈕下面的代碼被調用:面對問題在Android上使用smack

TestSmack a = new TestSmack(); 
a.login("[email protected]","password"); 

我有一個TestSmack類.....在這個類的構造函數我寫

public TestSmack() 
{ 
    ConnectionConfiguration connConfig = new 
      ConnectionConfiguration("talk.google.com", 5222, "gmail.com"); 
    connection = new XMPPConnection(connConfig); 
} 

其中XMPPConnection連接是一個全局變量。而在登錄方法我嘗試連接到服務器:

public void login(String userName, String password) throws XMPPException 
{ 
    SASLAuthentication.supportSASLMechanism("PLAIN", 0); 
    connection.connect();  
    connection.login(userName, password); 
} 

但它崩潰。我不知道發生了什麼事。

而我從main()調用這些所有方法並在單獨的項目(Java,而不是Android)中運行一個簡單的Java應用程序時,它工作正常。

我無法弄清楚什麼是問題。

謝謝

回答

4

您是否使用標準的Smack庫?幾個月前,當我使用XMPP進行遊戲時,您必須修補庫以使其在Android上運行。也許這可以幫助:

http://davanum.wordpress.com/2008/12/29/updated-xmpp-client-for-android/

+1

ya感謝reply.actually通過android訪問XMPP服務器時,我們需要在android.manifest文件中添加以下行:登錄工作....我希望它能幫助別人 – SPB 2010-09-21 03:53:45

2

如果有人不能夠運行在Android程序然後檢查connect()和登錄()API SMACK正在罰款或not.Because我想通了,u需要添加

用途的許可機器人:名稱= 「android.permission.INTERNET對」

在用於連接AndroidManifest文件

()和登錄()來work.And(內< />單獨的大括號括起來)不要忘記使用補丁Smack.jar。