在GTalk類中創建UpdateContactState類的對象實例.UpdateContactState類主要用來監視聯繫人的狀態,GTalk類需要實現OnContactStateListener接口.在GTalk類中的contactStateChange方法的代碼如下:
public void contactStateChange()
{
if(mConnection == null)
return;
Collection<RosterEntry>rosterEntries =mConnection.getRoste().getEntries();
for(RosterEntrry rosterEntry : rosterEntries)
{
//獲得當前聯繫人狀態(Presence對象)
Presence presence = mConnection.getRoster().getPresence(rosterEntry.getUser());
if(presence != null)
{
if(presence.isAvailable())
//如果聯繫人線上,將圖示資源ID換成online
mContactsAdapter.setContactIcon(rosterEntry.getUser(),R.drawable.online);
else
//如果聯繫人線上,將圖示資源ID換成offline
mContactsAdapter.setContactIcon(rosterEntry.getUser(),R.drawable.offline);
}
}
}