一个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会话相关推荐

  1. python交互窗口怎么才能不连着上一个程序_python实现启动一个外部程序,并且不阻塞当前进程...

    python可以使用os模块中的system函数来启动外部程序. Windows平台下使用start命令就可以不阻塞当前进程的执行程序,测试代码如下: import os os.system('sta ...

  2. SQL SERVER 远程主机强迫关闭一个现有连接

    SQL SERVER 远程主机强迫关闭一个现有连接 在做一个数据比对程序.昨天还能连接的,突然今天就不能连接 首先在数据服务器查看.服务都已启动.客户端能连接.没有其它异常 最后想起,不久之前我把电脑 ...

  3. 客户端C和服务器S之间建立一个TCP连接,该连接总是以1KB的最大段长发送TCP段,客户端C有足够的数据要发送。当拥塞窗口为16KB的时候发生超时,如果接下来的4个RTT往返时间内的TCP段的传输是成

    客户端C和服务器S之间建立一个TCP连接,该连接总是以1KB的最大段长发送TCP段,客户端C有足够的数据要发送.当拥塞窗口为16KB的时候发生超时,如果接下来的4个RTT往返时间内的TCP段的传输是成 ...

  4. 主机甲和主机乙之间已建立一个TCP连接,TCP最大段长为1000B。若主机甲的当前拥塞窗口为4000B,在主机甲向主机乙连续发送两个最大段后,成功收到主机乙发送的第一个段的确认段,确认段中通告的接收窗

    主机甲和主机乙之间已建立一个TCP连接,TCP最大段长为1000B.若主机甲的当前拥塞窗口为4000B,在主机甲向主机乙连续发送两个最大段后,成功收到主机乙发送的第一个段的确认段,确认段中通告的接收窗 ...

  5. RTMPdump(libRTMP) 源代码分析 7: 建立一个流媒体连接 (NetStream部分 2)

    ===================================================== RTMPdump(libRTMP) 源代码分析系列文章: RTMPdump 源代码分析 1: ...

  6. RTMPdump(libRTMP) 源代码分析 6: 建立一个流媒体连接 (NetStream部分 1)

    ===================================================== RTMPdump(libRTMP) 源代码分析系列文章: RTMPdump 源代码分析 1: ...

  7. RTMPdump(libRTMP) 源代码分析 5: 建立一个流媒体连接 (NetConnection部分)

    ===================================================== RTMPdump(libRTMP) 源代码分析系列文章: RTMPdump 源代码分析 1: ...

  8. Android通过WebSocket建立一个长连接(带心跳检测)从服务器端接收消息

    最近公司要做一款内部使用的工具类app,方便销售部门打电话(其实就是在后台有好多用户数据,之前销售部门同事拨打电话,需要自己从销售后台查看用户手机号等信息,然后自己拿自己手机拨号,然后打出去.现在想实 ...

  9. Android官方开发文档Training系列课程中文版:管理Activity的生命周期之启动一个Activity

    原文地址 : http://android.xsoftlab.net/training/basics/activity-lifecycle/index.html 导言 用户通过导航退出或者返回应用的时 ...

最新文章

  1. 可汗学院向量入门 矩阵入门
  2. (005)RN开发 js jsx ts tsx的区别
  3. openssl生成自签证书
  4. MVC URL参数传递+变为空格解决方法
  5. 6.MYSQL视图的使用和管理
  6. 解决问题的经验-javaweb-第一次-已掌握技术栈大致总结(部分),和相关理解,总结,以及对未来学习方向的规划
  7. hive load data外部表报错_生产SparkSQL如何读写本地外部数据源及排错
  8. jmeter 聚合报告说明_jmeter之聚合报告
  9. python实现池化操作
  10. 计算机专业毕业论文题目大全集
  11. verilog语法基础
  12. MIMO技术中的各种增益分析
  13. Newkirk effect and Morton effect
  14. 商业广告CPT-物料召回
  15. 多重网格法-松弛迭代法-二维泊松方程-python实现
  16. Visual Stdio 中的error C2001: 常量中有换行符
  17. 怎么发表计算机论文,潮州发表计算机论文写作方法,怎么发表论文
  18. 生命不息,折腾不止—小黑升win10
  19. 清除浮动的几种常用方法
  20. UI 设计小白入门论

热门文章

  1. css和js的压缩,降低代码可读性
  2. 第三次作业——个人作业——软件产品案例分析
  3. 誰能俯身為我拭去眼角的淚珠?
  4. 网易游戏游戏开发工程师笔试试题
  5. 国庆读书-20221009
  6. 后端返回PDF文件地址,直接打印出文件以及下载
  7. 【运筹学】匈牙利法 ( 匈牙利法步骤 | 试指派调整矩阵原理分析 | 打 √ | 直线覆盖 )
  8. 前端面试题HTTP总结(随缘更新)
  9. 游戏服务器如何选择合适的服务器配置
  10. Linux命令、历史介绍、使用等