用XMPP實現完整Android聊天項目


簡介

這是一個完整的xmpp的Android的項目
服務端使用openfire3.9.3
客戶端使用Android4.2.2

集成第三方:
百度地圖sdk
asmack.jar
universal-image-loader-1.9.3.jar

項目地址

https://github.com/mozhenhau/D3Xmpp

功能

    1. 注冊登錄會員
    2. 會員個人資料修改
    3. 基本聊天
    4. 語音、圖片、表情、動態表情、發送位置聊天(位置需要注冊百度api)
    5. 群聊(openfire需要安裝插件)
    6. 位置共享(實驗功能,openfire需要安裝插件)
    7. 項目結構

      此處輸入圖片的描述

      包及其類的作用:

      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的基本使用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM