WEB开发网
开发学院手机开发Ophone 开发 实现基于OPhone 2.0的GTalk客户端 阅读

实现基于OPhone 2.0的GTalk客户端

 2010-10-19 20:56:29 来源:WEB开发网   
核心提示:super.handleMessage(msg);}};@Overridepublic void run(){while (flag){try{// 每隔5秒调用一次contactStateChange方法Thread.sleep(5000);handler.sendEmptyMessage(0);}catch (Ex

super.handleMessage(msg);

}

};

@Override

public void run()

{

while (flag)

{

try

{

// 每隔5秒调用一次contactStateChange方法

Thread.sleep(5000);

handler.sendEmptyMessage(0);

}

catch (Exception e)

{

}

}

}

public void setOnContactStateListener(OnContactStateListener listener)

{

mOnContactStateListener = listener;

}

}

其中OnContactStateListener是一个事件接口,代码如下:

复制到剪贴板 Java代码

package net.blogjava.mobile.gtalk;

public interface OnContactStateListener

{

public void contactStateChange();

}

由于UpdateContactState类主要用来监听联系人的状态,因此,需要在GTalk类中创建UpdateContactState类的对象实例。GTalk类需要实现OnContactStateListener接口。在GTalk类中的contactStateChange方法的代码如下:

复制到剪贴板 Java代码

public void contactStateChange()

{

if (mConnection == null)

return;

Collection rosterEntries = mConnection.getRoster().getEntries();

for (RosterEntry 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);

}

}

}

现在启动Gtalk客户端,并使用读者自己的GMail帐号进行登录。如果这时某些联系人在线。联系人列表中的某些图标会在5秒后变成彩色的。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:实现 基于 OPhone

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接