实现基于OPhone 2.0的GTalk客户端
2010-10-19 20:56:29 来源:WEB开发网发送聊天信息
当单击某个联系人时,就会弹出一个聊天界面,如图2所示。在界面的上方会显示对方的帐号(GMail地址)。
当单击【发送】按钮后,会将界面下方文本框中的内容发送给另一端的用户。要想发送信息,首先需要创建一个org.jivesoftware.smack.Chat对象,然后使用Chat类的sendMessage方法发送消息。创建Chat对象的代码如下:
复制到剪贴板 Java代码
ChatManager chatmanager = GTalk.mConnection.getChatManager();
mChat = chatmanager.createChat(mContactAccount, null);
其中mChat是在ChatRoom类中定义的Chat类型的变量。
下面看一下【发送】按钮的单击事件方法的代码。
复制到剪贴板 Java代码
public void onClick(View view)
{
String msg = metMessage.getText().toString();
if (!"".equals(msg))
{
try
{
// 向联系人发送消息
mChat.sendMessage(msg);
// 清空输入消息的文本框
metMessage.setText("");
// 将聊天记录添加到EditText组件中
metMessageList.append("我: ");
metMessageList.append(msg + " ");
}
catch (Exception e)
{
}
}
}
接收聊天信息
虽然在前面介绍了如何发送消息,但并不能接收来自另一端的聊天消息。虽然监听聊天消息也可以通过事件完成,但可能是由于Asmack的bug,几乎所有的事件都无法进行监听(也许在以后的版本中会更正)。因此,我们需要在线程中以循环的方式监听聊天消息。下面先看一下使用Gtalk客户端和CSDN的微博客机器人进行聊天的效果。Gtalk客户端如图3所示,
MessageReceiver类负责以循环的方式监听聊天消息,代码如下:
复制到剪贴板 Java代码
赞助商链接