建立一个GTalk连接和启动一个IM会话

一个GTalk连接代表着设备和GTalk服务器之间的管道。一个IM会话是消息通道,用于处理所有的即时消息的交通;在一个会话中的所有的即时消息都在这个管道中流动。

 

你可以创建一些不同的连接和很多的IM会话,来连接不同的GTalk服务器或者IM提供商。

 

在默认情况下,一个设备需要单一的GTalk连接来支持单一的IM会话,并且这个会话使用设备所有者的用户名。你可以使用GTalk服务的getDefaultConnection和默认连接的getDefaultSession方法分别得到默认连接和会话,如下面的片段所示:

 

IGTalkConnection gTalkConnection = gtalkService.getDefaultConnection();

IImSession imSession = gTalkConnection.getDefaultImSession();

 

IM会话用于发送文本和数据消息,设定用户状态,管理IM联系人名单和管理组聊等。

 

Android应用程序中,IM会话是处理即时消息的最基本的接口。因此,接下来的代码片段显示了应用程序中ServiceConnection绑定GTalk服务的更加典型的实现。它确保了IM会话对象总是有效的。

 

private IGTalkConnection gTalkConnection = null;

private IImSession imSession = null;

private ServiceConnection gTalkServiceConnection = new ServiceConnection() {

// When the service connects, get the default GTalk session.

public void onServiceConnected(ComponentName className, IBinder service)

{

IGTalkService gtalkService = IGTalkService.Stub.asInterface(service);

try {

gTalkConnection = gtalkService.getDefaultConnection();

imSession = gTalkConnection.getDefaultImSession();

} catch (RemoteException e) { }

}

 

// When the service disconnects, clear the GTalk session.

public void onServiceDisconnected(ComponentName className) {

gTalkConnection = null;

imSession = null;

}

};

posted on 2009-09-28 22:24  xirihanlin  阅读(1029)  评论(0编辑  收藏  举报