smackの Android ポートであるasmackを使用して、Android 用の XMPP チャット クライアント (Google トーク) を作成しました。
gmailのチャットでユーザーとチャットするために使用しています。クライアントから送信されたメッセージは完全に配信されます。ただし、gmail から送信された一部のチャット メッセージのみが受信されます。Gmail のチャット ボックスにテキストが入力されている間 (Enter キーが押される前)、メッセージが届きます。これらのメッセージの本文は常に NULL です。これらのヌル パケットは「Typing..」メッセージに対応すると想定しました。ただし、実際のテキスト メッセージが送信された (Enter キーが押された) 場合でも、メッセージが常に配信されるとは限りません。まだ NULL 本文が返されます。私はこのように MessageListener を実装しています
public void processMessage(Chat arg0, final Message message) {
System.out.println(message.getType());
if(message.getBody()!=null) {
//do stuff
}
System.out.println("message body: "+ message.getBody());
}
また、短期間に複数のメッセージが送信された場合、それらが配信される可能性 (null 以外のメッセージ本文) が高くなることにも気付きました。
誰かが同様の問題を経験しましたか? どんな助けでも大歓迎です。