smack android 示例代码,Smack-Android客户端入门一
不管是项目中要使用还是自己做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客户端入门一相关推荐
- 【译】用Fragment创建动态的界面布局(附Android示例代码)
原文链接:Building a Dynamic UI with Fragments 为了在Android上创建一个动态和多视图的用户界面,你需要封装UI控件和模块化Activity的行为,以便于你能够 ...
- android静态代码扫描,Android 静态代码扫描流程及工具说明
1. 静态扫描流程 1.1 版本发布流程 大致分为5个阶段,静态代码扫描的工作在第3步进行,如图: 版本发布流程图 1.2 典型案例分析 [空指针]空指针引用 [内存泄露]Stream资源关闭 [性能 ...
- android静态代码扫描,android 静态代码扫描
开始做这样一个东西是为了帮助开发减少代码方面的问题,提高代码质量,减小以后上线的风险.前面看了 360 的那个静态代码扫描感觉很强大,但目前没这实力去做成这样,希望早日开源,多多学习.所以就先用开源的 ...
- android默认代码混淆,Android SDK默认混淆配置文件
一.介绍 通常情况下编译后的字节码包含了大量调试信息(如源类名/行号等) 混淆代码就能删除这些调试信息,并用无意义字符替换所有名字,增加反编译难度! ProGuard是一个混淆代码的开源项目,主要作用 ...
- 直播倒计时android,直播代码,Android实现验证码倒计时
直播代码,Android实现验证码倒计时实现的相关代码 创建一个CountDownTimerUtils工具类 //倒计时函数 private class CountDownTimerUtilsexte ...
- android购物车代码简述,Android实现简单购物车功能
本文实例为大家分享了Android实现购物车功能的具体代码,供大家参考,具体内容如下 MainActivity布局: android:layout_width="match_parent&q ...
- smack android 示例代码,Android smack4.2的简单使用
1.使用背景 在搭建即时通讯的时候,一般采用Openfire+smack实现(如:第三方环信 ).由于Asmack已经废弃.所以先使用官方最新库 : GitHub上的指导 2.使用大致流程 2.1新建 ...
- android mysql代码_LitePal——Android数据库框架完整使用手册(示例代码)
LitePal for Android LitePal是一个开源的Android库,使开发人员使用SQLite数据库非常简单.您无需编写任何SQL语句就可以完成大部分数据库操作,包括创建或升级表,增. ...
- 高端地图导航代码android,ReactNative 调用手机地图(高德、百度)导航 Android(示例代码)...
/***@parampkgName *@paramparam*/@ReactMethodpublic void openNavMap(String pkgName, String param, fin ...
最新文章
- Tips——IndexSearcher自动更新
- Java——集合的概述
- 通过谓词查找第一个元素
- [转]浅谈php web安全
- Atitit 算法之道 attilax著 1. 第二部分(Part II) 排序与顺序统计(Sorting and Order Statistics)	1 2. 第六章 堆排序(Heapsort)
- idea中中文字体设置
- 搭建Android开发环境——Eclipse
- CAD图纸的缩放——范围缩放
- SpringBoot个人学习
- 手把手教你:微信小程序内嵌网页或H5页面
- VIT实战总结:非常简单的VIT入门教程,一定不要错过
- mc服务器 无限夜视,我的世界夜视指令是什么?这里告诉你无限夜视的方法
- Friends第七季第八季, Candler Monica终于结婚了,Joey爱上了Rachel
- React启动报错These dependencies were not found:
- 怎样用word制作标准格式公文操作实例
- C#酒店会员管理系统
- 你不得不熟悉且熟练掌握的前端知识
- Ubuntu 16.04安装Zimbra邮件服务器
- iOS Umeng分享/第三方授权登录
- 量子纠缠——上帝掷骰子吗
热门文章
- 文本显示器-静态文本控件功能一览
- AIBlockChain:“知名博主独家讲授”人工智能创新应用竞赛【精选实战作品】之《基于计算机视觉、自然语言处理和区块链技术的乘客智能报警系统》案例的界面简介、功能介绍分享之计算机视觉技术
- 电子邮件营销方法大全
- 两个日期之间的差值计算
- 下拉框实现 一 - SAP ABAP 报表选择屏幕下拉框的实现
- iOS_11_tableViewCell的使用alertView修改数据
- Javaweb流浪动物救助平台的设计与实现
- chrome浏览器https证书不安全页面打开设置
- XYOJ1249: 均分纸牌(playcard)
- pycharm导入自己写的模块时报错找不到对应的模块问题解决