不管是项目中要使用还是自己做demo玩,即时通信,消息推送应该很多人也会接触到,在这里,记录下自己在学习Smack-Android中碰到的问题,也备查询,也许也能帮助要入门的伙伴们一些帮助。服务端基于openfire.版本为4.0.2,客户端基于官网上github给出的最新版4.2.0,这里用的不是asmack,是最新的smack,从官网上应该了解到,smack已经支持android端了,再也不用去使用二次封装的asmack了。

第一步,搭建工程项目,服务端的安装,直接从官网http://www.igniterealtime.org/下载安装文件,安装即可,不在此说明。客户端安装,基于Android studio了,eclipse也可以,github上也给出了详细的安装步骤,如果你是用http://www.igniterealtime.org/上下载的smack的jar,记得把需要的jar包全部导入。https://github.com/igniterealtime/Smack/wiki/Smack-4.2-Readme-and-Upgrade-Guide 这是安装指导,也就是引入两步:一.配置仓库:repositories {1

2

3

maven {

url ‘https://oss.sonatype.org/content/repositories/snapshots’

}

mavenCentral()

}

二、添加依赖:

dependencies {

compile “org.igniterealtime.smack:smack-android-extensions:4.2.0”

compile “org.igniterealtime.smack:smack-experimental:4.2.0”

compile “org.igniterealtime.smack:smack-tcp:4.2.0”

}

到了这一步,你的项目所需要的相关Smack文件已经全部配置好了,接下来就是编写客户端了,在这里,演示下连接与登陆操作,直接上源码:

XMPPTCPConnectionConfiguration.Builder connectionConfiguration = XMPPTCPConnectionConfiguration.builder();

connectionConfiguration.setConnectTimeout(5000);

connectionConfiguration.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);

connectionConfiguration.setDebuggerEnabled(true);

connectionConfiguration.setSendPresence(true);

connectionConfiguration.setResource("Android");

connectionConfiguration.setUsernameAndPassword(user, password);

connectionConfiguration.setServiceName(Constants.SERVER_NAME);

connectionConfiguration.setHost(Constants.SERVER_HOST);

SASLAuthentication.registerSASLMechanism(new SASLPlainMechanism());

AbstractXMPPConnection xmppConnection = new XMPPTCPConnection(connectionConfiguration.build());

xmppConnection.connect();

xmppConnection.login();1

2

3

4

5

6

7

8

9

10

11

12

13

14

如果一切正常,那么你就登陆成功了,项目搭建成功后,就一步一步实现即时通信功能了,接下来将会展示好友,组成员的获取,房间的获取,单对单之间的文字,图片,文件的发送与接收,会议室功能,会议室与群有点区别,你断开连接就被退出了会议室,下次需要重新加入。

smack android 示例代码,Smack-Android客户端入门一相关推荐

  1. 【译】用Fragment创建动态的界面布局(附Android示例代码)

    原文链接:Building a Dynamic UI with Fragments 为了在Android上创建一个动态和多视图的用户界面,你需要封装UI控件和模块化Activity的行为,以便于你能够 ...

  2. android静态代码扫描,Android 静态代码扫描流程及工具说明

    1. 静态扫描流程 1.1 版本发布流程 大致分为5个阶段,静态代码扫描的工作在第3步进行,如图: 版本发布流程图 1.2 典型案例分析 [空指针]空指针引用 [内存泄露]Stream资源关闭 [性能 ...

  3. android静态代码扫描,android 静态代码扫描

    开始做这样一个东西是为了帮助开发减少代码方面的问题,提高代码质量,减小以后上线的风险.前面看了 360 的那个静态代码扫描感觉很强大,但目前没这实力去做成这样,希望早日开源,多多学习.所以就先用开源的 ...

  4. android默认代码混淆,Android SDK默认混淆配置文件

    一.介绍 通常情况下编译后的字节码包含了大量调试信息(如源类名/行号等) 混淆代码就能删除这些调试信息,并用无意义字符替换所有名字,增加反编译难度! ProGuard是一个混淆代码的开源项目,主要作用 ...

  5. 直播倒计时android,直播代码,Android实现验证码倒计时

    直播代码,Android实现验证码倒计时实现的相关代码 创建一个CountDownTimerUtils工具类 //倒计时函数 private class CountDownTimerUtilsexte ...

  6. android购物车代码简述,Android实现简单购物车功能

    本文实例为大家分享了Android实现购物车功能的具体代码,供大家参考,具体内容如下 MainActivity布局: android:layout_width="match_parent&q ...

  7. smack android 示例代码,Android smack4.2的简单使用

    1.使用背景 在搭建即时通讯的时候,一般采用Openfire+smack实现(如:第三方环信 ).由于Asmack已经废弃.所以先使用官方最新库 : GitHub上的指导 2.使用大致流程 2.1新建 ...

  8. android mysql代码_LitePal——Android数据库框架完整使用手册(示例代码)

    LitePal for Android LitePal是一个开源的Android库,使开发人员使用SQLite数据库非常简单.您无需编写任何SQL语句就可以完成大部分数据库操作,包括创建或升级表,增. ...

  9. 高端地图导航代码android,ReactNative 调用手机地图(高德、百度)导航 Android(示例代码)...

    /***@parampkgName *@paramparam*/@ReactMethodpublic void openNavMap(String pkgName, String param, fin ...

最新文章

  1. Tips——IndexSearcher自动更新
  2. Java——集合的概述
  3. 通过谓词查找第一个元素
  4. [转]浅谈php web安全
  5. Atitit 算法之道 attilax著 1. 第二部分(Part II) 排序与顺序统计(Sorting and Order Statistics) 1 2. 第六章 堆排序(Heapsort)
  6. idea中中文字体设置
  7. 搭建Android开发环境——Eclipse
  8. CAD图纸的缩放——范围缩放
  9. SpringBoot个人学习
  10. 手把手教你:微信小程序内嵌网页或H5页面
  11. VIT实战总结:非常简单的VIT入门教程,一定不要错过
  12. mc服务器 无限夜视,我的世界夜视指令是什么?这里告诉你无限夜视的方法
  13. Friends第七季第八季, Candler Monica终于结婚了,Joey爱上了Rachel
  14. React启动报错These dependencies were not found:
  15. 怎样用word制作标准格式公文操作实例
  16. C#酒店会员管理系统
  17. 你不得不熟悉且熟练掌握的前端知识
  18. Ubuntu 16.04安装Zimbra邮件服务器
  19. iOS Umeng分享/第三方授权登录
  20. 量子纠缠——上帝掷骰子吗

热门文章

  1. 文本显示器-静态文本控件功能一览
  2. AIBlockChain:“知名博主独家讲授”人工智能创新应用竞赛【精选实战作品】之《基于计算机视觉、自然语言处理和区块链技术的乘客智能报警系统》案例的界面简介、功能介绍分享之计算机视觉技术
  3. 电子邮件营销方法大全
  4. 两个日期之间的差值计算
  5. 下拉框实现 一 - SAP ABAP 报表选择屏幕下拉框的实现
  6. iOS_11_tableViewCell的使用alertView修改数据
  7. Javaweb流浪动物救助平台的设计与实现
  8. chrome浏览器https证书不安全页面打开设置
  9. XYOJ1249: 均分纸牌(playcard)
  10. pycharm导入自己写的模块时报错找不到对应的模块问题解决