OpenfireサーバーとAndroidクライアント(スマック)があります。すべてのクライアントはお互いをバディ/リストに追加することができます(承認なしで、ユーザーはバディリクエストを受け入れずにお互いを見たいと思っています)。バディリクエスト送信者のプレゼンス情報を取得する際にいくつか問題があります。私は、ユーザーAの名簿リストにユーザBを見ることができますAndroidスマートフォンでバディリクエストを正しく受け入れる方法は?
Roster roster = xmppManager.connection.getRoster();
roster.setSubscriptionMode(Roster.SubscriptionMode.accept_all);
roster.createEntry("userB", "[email protected]", null);
:ユーザA、ユーザB
私がしてユーザーAの名簿にユーザBを追加することができます -
は2人のユーザーがいるとします。ユーザーAで)私はcreateEntry(に
//I have set the available and status of User A by:
//xmppManager.setStatus(available, bundle.getString("new_status"));
...
// That's how I get Roster and Presence of user A
Roster roster = connection.getRoster();
Collection<RosterEntry> entries = roster.getEntries();
for (RosterEntry entry : entries) {
Presence presence = roster.getPresence(entry.getUser());
// User A always not available even I set User A to available
Log.e(TAG, "presence.isAvailable() = " + presence.isAvailable());
// User A's status always empty
Log.e(TAG, "presence.getStatus() = " + presence.getStatus());
// User A's getName() always null
if (entry.getName() != null)
{
name = entry.getName();
}
else
Log.e(TAG, "GetName is null");
}
必要です:すべては、これまで
私は以下のコードで、問題をされているもの状態ユーザBとのいくつかの問題がありますが大丈夫ですか?
またはこのようなバディリクエストで何かする必要がありますか?
@Override
public void entriesAdded(Collection<String> collection) {
String user = "";
Iterator<String> it = collection.iterator();
if(it.hasNext()){
user=it.next();
}
Presence presence = new Presence(Presence.Type.subscribe);
presence.setTo(user);
connection.sendPacket(presence);
}
しかし、動作しません。私は最初にユーザーBに何かする必要があるようです。どんな考えも歓迎です、ありがとう!