Android 聊天项目 D3Xmpp

码农软件 · 软件分类 · 手机相关软件 · 2019-05-09 08:43:02

软件介绍

D3Xmpp 是一个完整的 XMPP 的 Android 的项目

服务端使用 openfire 3.9.3
客户端使用 Android 4.2.2

集成第三方:

百度地图sdk
asmack.jar
universal-image-loader-1.9.3.jar

功能

  1. 注册登录会员

  2. 会员个人资料修改

  3. 基本聊天

  4. 语音、图片、表情、动态表情、发送位置聊天(位置需要注册百度api)

  5. 群聊(openfire需要安装插件)

  6. 位置共享(实验功能,openfire需要安装插件)

项目结构

此处输入图片的描述

包及其类的作用:

1.activites和fragments

activites和fragments放的类是一样的,是放activity和fragment的。作用是android的Controller层。

BaseActivity—— 一切activity的基类,继承了D3Activity。主要是实现注解实例化
ChangePwdActivity—— 修改密码页
ChatActivity—— 聊天页。Intent必须参数chatName(聊天对象,单聊为对方id,群聊为群名称),
可选参数chattype。chatType有单聊和群聊两个参数,不传则默认单聊。
ChoseActivity—- 群组邀请页面。Intent必须参数roomName和成员members
CropImageActivity—- 截图页面。isAutoSend为true时自动截图
FriendActivity—- 好友详情页。必须参数username
LoginActivity—- 登陆页。
MainActivity—- 主页。使用fragments包住四个TAB页面
MapActivity—- 地图页. 从聊天页的位置跳到此页面。必须参数lat,lon
MyRoomActivity—- 我的群组页
NewFriendActivity—- 我的新好友申请页
PicSrcPickerActivity—- 弹出选择选图方式。拍照和图库
RegActivity—- 注册页
RoomMemActivity—- 群组成员
SearchActivity—- 搜索好友页
ShowPicActivitiy—- 展示大图页
TempActivity—- 模板类,方便我复制生成一个新类而已
WebActivity—- 一个全屏的webview

//fragment
AdrFragment—- 位置页.
原理:登录后的用户,每分钟上传一次自己的位置,如果下线则删除自己的位置。
登陆后的用户,每分钟更新一次自己好友的位置,如果对方在线则在百度地图中渲染出红点。
如果取消共享位置,则关闭以上功能

MsgFragment—- “首页”消息
原理:登录后的用户,通过XmppMessageInterceptor和XmppMessageListener两个类拦截自己发出和接收到的消息,拦截消息后更新到MsgFragment显示出来。

ContactFragment—- 通讯录页
原理:登录后的用户,通过XmppPresenceInterceptor和XmppPresenceListener两个类拦截自己发出和接收到的好友状态消息,拦截状态消息后更新到这里。

MeFragment—- “我的”页

2. com.d3.d3xmpp.adapter

主要存放activity和fragment对应的list适配。懂android的都知道

3.com.d3.d3xmpp.constant

存放配置类,有三个:
com.d3.d3xmpp.constant. Constants类是常用的配置
com.d3.d3xmpp.constant. MyApplication类是全局Application,方便管理android
com.d3.d3xmpp.constant. ImgConfig是图片类,用于优化图片加载,使用的universal-image-loader-1.9.3.jar

4.com.d3.d3xmpp.dao 和 com.d3.d3xmpp.model

是属于MVC模式中的Model。
dao负责获取数据库的数据,并返回给Activity
model是基础数据类

5.com.d3.d3xmpp.d3View 和 com.d3.d3xmpp.util

这是私人框架,集成了android开发中常用的一些方法及View。
包括录音按钮RecordButton,加入了下拉刷新的MyListView,实现了注解实例view的D3Activity等等。

6.com.d3.d3xmpp.xmpp(xmpp的核心):

其他都是安卓开发者必须懂的东西。下面说xmpp类的作用
 此处输入图片的描述
XmppConnectionListerner是xmpp的连接状态的listener,比如断线等
XmppMessageInterceptor是发出消息的listener,在此拦截并持久化聊天纪录
XmppMessageListener是收到消息的listener,在此拦截并持久化聊天纪录
XmppPresenceInterceptor是本机发出好友消息的监听,比如添加好友,删除好友
XmppPresenceListener是本机收到好友消息的监听,比如添加好友,删除好友
XmppConnection是xmpp基本操作的核心类,包括登录,注册,聊天,修改密码,好友管理,群组管理等等。

PS:

该项目是本人在学习xmpp过程中总结的一些东西,代码组织凌乱,旨在帮助新入门xmpp学习xmpp的基本使用

本文地址:https://codercto.com/soft/d/5343.html

Domain-Driven Design Distilled

Domain-Driven Design Distilled

Vaughn Vernon / Addison-Wesley Professional / 2016-6-2 / USD 36.99

Domain-Driven Design (DDD) software modeling delivers powerful results in practice, not just in theory, which is why developers worldwide are rapidly moving to adopt it. Now, for the first time, there......一起来看看 《Domain-Driven Design Distilled》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具