1

aSmackを使用してAndroidフォン間のXMPP通信をセットアップする基本を試みています。アプリからアカウントを登録し、PC にログインしている Jabber-ID にメッセージを送信できました。問題は、PC クライアントからの返信が受信されていないようで、MessageListener の processMessage() が呼び出されていないようです。

       try{connection.login("kmomochesstest", "password1");}
       catch(Exception e){Log.e("connection","Account login error: " + e.toString());}
       chat = connection.getChatManager().createChat("chesstestpc@macjabber.de", new MessageListener() {

             public void processMessage(Chat chat, Message message) {
                 try{System.out.println(message.getBody());}
             catch(Exception e){Log.e("connection","Message send error: " + e.toString());}
       });
       try{chat.sendMessage("Test Message from Activity");Log.d("connection","Just sent Message ");}
        catch(Exception e){Log.e("connection","Message send error: " + e.toString());}

この時点で、コンソールに出力しようとしていますが、ログに出力して、chat.sendMessage(message.getBody()) で PC にエコー バックしようとしました。着信メッセージを登録するものはないようです。これは、私がオンラインで見つけたすべてのハウツーの形式のようです。

4

1 に答える 1

0

どのバージョンの Smack を使用していますか?

以前のバージョンでは、スレッド ID を含まないメッセージを、スレッド ID を使用して作成された既存のチャットと照合しようとしたときに問題がありました (Smack のように)。たとえば、Pidgin はスレッド ID を使用しないため、メッセージを受信したときに新しいチャット インスタンスが作成されます。

これが起こらないように、3.2 でマッチング プロセスが改善されました。

ChatManagerListener を作成してみて、返信から新しいチャットが作成されているかどうかを確認してください。

于 2012-01-23T21:08:03.523 に答える