建立一个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;
}
};
转载于:https://www.cnblogs.com/xirihanlin/archive/2009/09/28/1576019.html
建立一个GTalk连接和启动一个IM会话相关推荐
- python交互窗口怎么才能不连着上一个程序_python实现启动一个外部程序,并且不阻塞当前进程...
python可以使用os模块中的system函数来启动外部程序. Windows平台下使用start命令就可以不阻塞当前进程的执行程序,测试代码如下: import os os.system('sta ...
- SQL SERVER 远程主机强迫关闭一个现有连接
SQL SERVER 远程主机强迫关闭一个现有连接 在做一个数据比对程序.昨天还能连接的,突然今天就不能连接 首先在数据服务器查看.服务都已启动.客户端能连接.没有其它异常 最后想起,不久之前我把电脑 ...
- 客户端C和服务器S之间建立一个TCP连接,该连接总是以1KB的最大段长发送TCP段,客户端C有足够的数据要发送。当拥塞窗口为16KB的时候发生超时,如果接下来的4个RTT往返时间内的TCP段的传输是成
客户端C和服务器S之间建立一个TCP连接,该连接总是以1KB的最大段长发送TCP段,客户端C有足够的数据要发送.当拥塞窗口为16KB的时候发生超时,如果接下来的4个RTT往返时间内的TCP段的传输是成 ...
- 主机甲和主机乙之间已建立一个TCP连接,TCP最大段长为1000B。若主机甲的当前拥塞窗口为4000B,在主机甲向主机乙连续发送两个最大段后,成功收到主机乙发送的第一个段的确认段,确认段中通告的接收窗
主机甲和主机乙之间已建立一个TCP连接,TCP最大段长为1000B.若主机甲的当前拥塞窗口为4000B,在主机甲向主机乙连续发送两个最大段后,成功收到主机乙发送的第一个段的确认段,确认段中通告的接收窗 ...
- RTMPdump(libRTMP) 源代码分析 7: 建立一个流媒体连接 (NetStream部分 2)
===================================================== RTMPdump(libRTMP) 源代码分析系列文章: RTMPdump 源代码分析 1: ...
- RTMPdump(libRTMP) 源代码分析 6: 建立一个流媒体连接 (NetStream部分 1)
===================================================== RTMPdump(libRTMP) 源代码分析系列文章: RTMPdump 源代码分析 1: ...
- RTMPdump(libRTMP) 源代码分析 5: 建立一个流媒体连接 (NetConnection部分)
===================================================== RTMPdump(libRTMP) 源代码分析系列文章: RTMPdump 源代码分析 1: ...
- Android通过WebSocket建立一个长连接(带心跳检测)从服务器端接收消息
最近公司要做一款内部使用的工具类app,方便销售部门打电话(其实就是在后台有好多用户数据,之前销售部门同事拨打电话,需要自己从销售后台查看用户手机号等信息,然后自己拿自己手机拨号,然后打出去.现在想实 ...
- Android官方开发文档Training系列课程中文版:管理Activity的生命周期之启动一个Activity
原文地址 : http://android.xsoftlab.net/training/basics/activity-lifecycle/index.html 导言 用户通过导航退出或者返回应用的时 ...
最新文章
- 可汗学院向量入门 矩阵入门
- (005)RN开发 js jsx ts tsx的区别
- openssl生成自签证书
- MVC URL参数传递+变为空格解决方法
- 6.MYSQL视图的使用和管理
- 解决问题的经验-javaweb-第一次-已掌握技术栈大致总结(部分),和相关理解,总结,以及对未来学习方向的规划
- hive load data外部表报错_生产SparkSQL如何读写本地外部数据源及排错
- jmeter 聚合报告说明_jmeter之聚合报告
- python实现池化操作
- 计算机专业毕业论文题目大全集
- verilog语法基础
- MIMO技术中的各种增益分析
- Newkirk effect and Morton effect
- 商业广告CPT-物料召回
- 多重网格法-松弛迭代法-二维泊松方程-python实现
- Visual Stdio 中的error C2001: 常量中有换行符
- 怎么发表计算机论文,潮州发表计算机论文写作方法,怎么发表论文
- 生命不息,折腾不止—小黑升win10
- 清除浮动的几种常用方法
- UI 设计小白入门论