2010-09-20 4 views
3

J'ai un bouton dans l'application Android. Lorsque le bouton est cliqué code suivant est invoqué:face à un problème en utilisant smack sur android

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

J'ai une classe TestSmack ..... dans le constructeur de cette classe je l'ai écrit

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

où la connexion est XMPPConnection une variable globale. Et dans la méthode de connexion, j'essaie de me connecter au serveur:

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

Mais il plante. Je ne sais pas ce qui se passe.

Considérant que lorsque j'appelle toutes ces méthodes de main() et exécutez une application Java simple dans un projet distinct (Java, pas Android) cela fonctionne très bien. Je ne suis pas en mesure de comprendre quel est le problème.

Merci

Répondre

4

Utilisez-vous la bibliothèque Smack standard? Quand je jouais avec XMPP il y a quelques mois, vous deviez patcher la bibliothèque pour qu'elle fonctionne sur Android. Peut-être que cela aide:

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

+1

Merci pour la réponse.actuellement lors de l'accès au serveur XMPP via Android, nous devons ajouter la ligne: dans le fichier android.manifest pour la fonction Connect et Connectez-vous au travail .... J'espère que cela aidera les autres – SPB

2

Si quelqu'un ne peut pas exécuter le programme sur Android puis vérifier si la connexion() et login() API SMACK fonctionnent très bien ou not.Because i compris que le besoin d'u ajouter

utilisations-permission android: name = "android.permission.INTERNET" (enfermer dans < /> accolades séparées)

dans le fichier AndroidManifest pour connexion() et login() à work.And n'oubliez pas d'utiliser le Smack.jar corrigé.

Questions connexes