asmackでXMPPのPreference情報を取得する

asmack + openfireでチャットについて調査中

相手先の状態(Presence)を取得するには、ユーザーのRosterが登録されていなければならない。Rosterはユーザーの追加を行うことでできるが、通常は一方通行の関係となる(subscribeがfrom, to)。ユーザーが追加されたことは検知できるので、追加された側もPresense.Type.subscribeを相手に送ってあげることで双方向の関係となり、相手のPreferenceの変更をRosterListenerで取得することができる。