使用GTalk服务
在你访问GTalk服务之前,你需要导入gtalkservice库到你的应用程序中,通过在工程manifest中添加uses-library标签来导入,如下所示:
<uses-library android:name=”com.google.android.gtalkservice”/>
你还需要添加Gtalk uses-permission标签,如下面的XML片段所示:
<uses-permission android:name=”android.permission.GTALK”/>
Android即时消息功能通过不同的接口来暴露,如下所述:
❑ IGTalkService
用于创建,访问和管理GTalk连接。
❑ IGTalkConnection
一个GTalk连接表示设备与要连接的服务器间持续的socket连接。在启动时,GTalk服务会创建一个默认的连接,通过调用GTalk服务对象的getDefaultConnection方法,你可以访问它。
❑ IImSession
大多数的即时消息功能都是通过IImSession接口来处理的。它用于得到IM“名单”,设置用户在线状态,获取联系人的状态和管理聊天会话。每个GTalk连接创建一个默认的会话,可以通过getDefaultSession方法获得。
❑ IChatSession
所有的即时消息都是通过IChatSession接口来处理的。新的聊天会话通过初始化新的聊天或者通过加入到已经存在IM会话对象来创建。使用聊天会话接口,你可以发送新的聊天讯息,邀请新的成员来参与组聊,并可以返回参与聊天的成员列表。
❑ IChatListener
实现IChatListener来监听在IM会话或聊天会话中的讯息。IChatListener接口负责处理对新来的信息、新的聊天参与者加入和有人离开聊天室的监听。
❑ IGroupChatInvitationListener
实现IGroupChatInvitationListener来监听加入组聊的邀请。onInvitationReceived处理函数传入一个GroupChatInvitation对象,它包含了邀请者的用户名,房间地址,理由(通常是房间描述)和你加入组聊需要的密码。
❑ IRosterListener
你可以通过实现IRosterListener接口来监视你的IM联系人名单,和其上在线的人员。RosterListener包含一些事件处理器,当联系人的状态发生变化或名单上的联系人有增减时会触发这些事件。