如何訂閱SMACK中的用戶可用性狀態更改?SMACK:我如何監聽用戶可用性狀態更改?
要獲得我用下面的用戶可用性狀態:
XMPPConnection.getRoster().getPresence(name).isAvailable();
但我怎麼可以訂閱,所以我接受了一些通知,只要狀態發生變化? (所以我不必投票)。
如何訂閱SMACK中的用戶可用性狀態更改?SMACK:我如何監聽用戶可用性狀態更改?
要獲得我用下面的用戶可用性狀態:
XMPPConnection.getRoster().getPresence(name).isAvailable();
但我怎麼可以訂閱,所以我接受了一些通知,只要狀態發生變化? (所以我不必投票)。
這段代碼可以幫助你:
roster.addRosterListener(new RosterListener() {
// Ignored events public void entriesAdded(Collection<String> addresses) {}
public void entriesDeleted(Collection<String> addresses) {}
public void entriesUpdated(Collection<String> addresses) {}
public void presenceChanged(Presence presence) {
System.out.println("Presence changed: " + presence.getFrom() + " " + presence);
}
@Override
public void entriesAdded(Collection<String> arg0) {
// TODO Auto-generated method stub
}
});
roster.addRosterListener(new RosterListener() {
// Ignored events public void entriesAdded(Collection<String> addresses) {}
public void entriesDeleted(Collection<String> addresses) {}
public void entriesUpdated(Collection<String> addresses) {}
public void presenceChanged(Presence presence) {
Log.e(TAG, presence.getStatus());
Log.e(TAG,presence.getFrom());
Log.e(TAG, presence.getLanguage());
Log.e(TAG,presence.getDefaultLanguage());
Log.e(TAG, presence.getType().toString());
}
@Override
public void entriesAdded(Collection<String> arg0) {
// TODO Auto-generated method stub
}
});
我嘗試你的鏈接,但聽者不會調用 –