2011-08-17 43 views
0

正如你可能知道,有沒有對如何使用asmack庫正常登錄Facebook的單一組織的文檔。我總算找到了一些淨值代碼至少讓我登錄到我的帳戶,但爲什麼我不斷收到以下異常:XMPPError連接到chat.facebook.com(拒絕)登錄到Facebook的聊天asmack

XMPPError連接到chat.facebook.com:5222:遠程服務器錯誤(502)XMPPError連接到chat.facebook.com:5222。 - 致:java.net.SocketException異常:權限被拒絕

下面的代碼:

((Button) findViewById(R.id.login_btn)).setOnClickListener(
     new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      ConnectionConfiguration config = 
        new ConnectionConfiguration("chat.facebook.com", 5222, 
        "chat.facebook.com"); 
      config.setSASLAuthenticationEnabled(true); 

      Connection conn = new XMPPConnection(config); 
      try { 
       conn.connect(); 
       SASLAuthentication.supportSASLMechanism("PLAIN", 0); 

       ProgressDialog loading = ProgressDialog.show(instance, 
        "", "Loading..."); 
       conn.login(login_field.getText().toString(), 
        pwd_field.getText().toString(), 
        login_field.getText().toString() + "/fbchat"); 
       loading.hide(); 

       new AlertDialog.Builder(instance).setMessage(conn.getUser()) 
        .create().show(); 
      } catch (XMPPException e) { 
       new AlertDialog.Builder(instance).setMessage(e.toString()) 
       .setPositiveButton("OK", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int which) { 
        dialog.cancel(); 
        } 
       }) 
       .create().show(); 
      } 
     } 
}); 

回答

3

明顯的潛在的解釋 - 你必須在你的AndroidManifest.xml中INTERNET許可?

<uses-permission android:name="android.permission.INTERNET"/> 

如果沒有這個,您將無法訪問網絡資源。


編輯:

清單中的你在哪裏申請INTERNET權限?它的位置可能會有所作爲,它會默默地失敗。它需要位於頂層(例如<manifest>標籤下,未附加到活動)。當然,如果你通過Eclipse加入它,它可能是在正確的位置已經:

<manifest 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.android.samplesync" 
    android:versionCode="1" 
    android:versionName="1.0"> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <activity> 
     ... 
    </activity> 
</manifest> 

或者,你是如何連接到互聯網?這也可能表明所需的端口被防火牆阻止(見here

+0

恐怕有它。 –

+0

看起來像您的編輯工作!因爲我現在正在得到一堆新的錯誤,比如服務器超時或什麼的。我的使用許可最初位於標籤下。不敢相信讓我堅持6小時 –

+0

這將會是巨大的,如果Android的工具,標記爲錯誤,因爲很明顯,只有一個地方它可以使用的,但我想這是有效的XML,因此獲得通過。 – RivieraKid