マルチユーザー チャットのスマック プレゼンス リスナーが呼び出されない。Smack Api を使用してログインし、roster.addRosterListener(mRoasterListener);を追加しました。しかし、チャット ルームの他のユーザーのプレゼンスが変化したときにリッスンすることに成功しませんでした。プレゼンスリスナーを機能させるために、次のコードを試しました:
connection.login(loginUser, passwordUser);
MultiUserChatManager manager =
MultiUserChatManager.getInstanceFor(connection);
muc = manager.getMultiUserChat(roomID + "@" +context.getString(R.string.group_chat_id));
Log.d("Join User: ", "Already Created");
muc.join(Utilities.getUserPhoneNo(context));
muc.addMessageListener(mGroupMessageListener);
Roster roster = Roster.getInstanceFor(connection);//luna
roster.addRosterListener(mRoasterListener);//roasterListener
Log.d("Joined User Phone: ", " " + Utilities.getUserPhoneNo(context));
そして、プレゼンスの変化をリッスンするこのクラス...
public class RoasterListener implements RosterListener{
public RoasterListener(Context context){
}
@Override
public void entriesAdded(Collection<String> collection) {
}
@Override
public void entriesUpdated(Collection<String> collection) {
}
@Override
public void entriesDeleted(Collection<String> collection) {
}
@Override
public void presenceChanged(Presence presence) {
System.out.println("Presence changed: " + presence.getFrom() + " " + presence);
}
}
stackoverflow で利用可能な多くのリンクを試しましたが、成功しませんでした。助けてください!