• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Android的校園多媒體即時通信系統(tǒng)的設(shè)計與實現(xiàn)

      2018-03-20 01:36:39笪林梅
      關(guān)鍵詞:服務(wù)器端資訊好友

      笪林梅

      (江蘇財經(jīng)職業(yè)技術(shù)學(xué)院 機械電子與信息工程學(xué)院, 江蘇 淮安 223003)

      移動互聯(lián)網(wǎng)時代,人們之間的交流和互動越來越依賴于手機,尤其是當下的大學(xué)生們。即時通信(Instant Message,簡稱IM)已經(jīng)成為時下應(yīng)用最為廣泛的一種實時通信方式。它建立在因特網(wǎng)和其它有線、無線網(wǎng)絡(luò)基礎(chǔ)之上,是一個集成了交流、資訊、娛樂、搜索、電子商務(wù)、辦公協(xié)作和企業(yè)客戶服務(wù)等為一體的綜合性信息平臺。

      當前,大學(xué)生們喜愛的即時通信工具主要有QQ、微信和陌陌等,這些工具的功能已經(jīng)非常完善。而本論文的研究目的是基于Android技術(shù)開發(fā)一種適用于校園的多媒體聊天系統(tǒng),它能夠效仿微信,以校園溝通交流為目的,實現(xiàn)用戶的注冊與登錄、好友的管理(增刪改查)、好友的一對一聊天、群聊、音視頻共享、校園資訊發(fā)布等功能。系統(tǒng)界面簡潔明了,易于用戶操作,能夠在校園推廣使用。

      一、Android關(guān)鍵技術(shù)

      Android系統(tǒng)是一個開放的移動互聯(lián)操作系統(tǒng),它的底層基于Linux,系統(tǒng)架構(gòu)采用分層模式,從低到高依次是Linux內(nèi)核層、系統(tǒng)運行庫層、應(yīng)用程序框架層和應(yīng)用程序?qū)?。[1]

      Android包含四大組件,即 Activity、Service、BroadcastReceiver和 ContentProvider。[2]Activity是用戶和應(yīng)用程序交互的窗口,可以調(diào)用onCreate()、onStart()、onResume()、onPause()、onStop()、onDestroy()、onRestart()等方法分別實現(xiàn)創(chuàng)建、激活、恢復(fù)、暫停、停止、銷毀和重啟。Service是沒有界面的Activity,一般運行于后臺,封裝一個完整的功能邏輯實現(xiàn)。BroadcastReceiver接受一種或者幾種Intent為觸發(fā)事件,接收相關(guān)消息,進行一些簡單處理,當這些事件發(fā)生時,系統(tǒng)喚醒或傳遞消息到BroadcastReceiver,以此統(tǒng)一Android的事件廣播模型。ContentProvider是Android系統(tǒng)提供的第三方應(yīng)用數(shù)據(jù)的訪問方案,共享自己的數(shù)據(jù)給外部來調(diào)用,提供數(shù)據(jù)訪問接口。[3]

      二、系統(tǒng)設(shè)計

      本系統(tǒng)的主體功能是校園多媒體即時通信,能夠滿足師生和同學(xué)之間會話操作、資訊管理和好友管理三大需求。系統(tǒng)功能結(jié)構(gòu)如圖1所示。

      圖1 系統(tǒng)功能結(jié)構(gòu)圖

      (一)系統(tǒng)技術(shù)架構(gòu)設(shè)計

      系統(tǒng)采用C/S架構(gòu),服務(wù)器端采用Openfire服務(wù)器,管理服務(wù)器端與客戶端之間的連接和會話;客戶端采用MVC模式構(gòu)建。[4]

      (二)系統(tǒng)數(shù)據(jù)庫設(shè)計

      在客戶端,使用Android內(nèi)置的SQLite作為本地數(shù)據(jù)庫,存儲系統(tǒng)信息和本地用戶信息,包括好友聊天記錄表、群聊天記錄表、個人信息表等。在服務(wù)器端,使用MySQL,存儲用戶信息、用戶分組和用戶關(guān)系等。

      (三)系統(tǒng)客戶端設(shè)計

      客戶端工作時,向服務(wù)器端發(fā)送請求,通過XMPP協(xié)議獲取服務(wù)。在通信時,通過GPRS網(wǎng)絡(luò),建立雙方的連接。[5]

      (1)注冊模塊:實現(xiàn)新用戶的注冊。

      (2)登錄模塊:用戶輸入用戶名和密碼,正確則進入系統(tǒng);錯誤則提示用戶名不存在或密碼錯誤。

      (3)會話操作模塊:進行文字聊天、圖片聊天、語音聊天、視頻聊天等,還可以傳送文件。

      (4)資訊管理模塊:添加、刪除、查詢各類校園資訊。

      (5)好友管理模塊:添加、刪除、查詢好友。

      三、系統(tǒng)主要模塊實現(xiàn)

      (一)會話操作模塊

      會話操作,可以是單聊,也可以是群聊。

      (1)文本的發(fā)送。

      ①獲取會話對象:

      EMConversation conversation=EMChatManager.getInstance().getConversation(username);

      ②創(chuàng)建文本:

      EMMessage message=EMMessage.

      createSendMessage(EMMessage.Type.TXT);

      如果是群聊,應(yīng)做設(shè)置“message.setChatType(ChatType.GroupChat);”

      ③添加文本消息:

      TextMessageBody txtBody=new TextMessage-Body(content);

      message.addBody(txtBody);

      ④設(shè)置接收消息的用戶,把消息加到目標會話對象,發(fā)送消息:

      message.setReceipt(username);

      conversation.addMessage(message);

      EMChatManager.getInstance ().sendMessage(message,new EMCallBack(){});

      (2)圖片的發(fā)送。

      和文本消息不同的是,在創(chuàng)建圖片時,使用“EMMessage message=EMMessage.createSendMessage(EMMessage.Type.IMAGE);”而在添加圖片時,使用“ImageMessageBody body=new ImageMessage-Body(new File(filePath));”。[6]

      (3)語音的發(fā)送。

      語音和文本、圖片相似,但創(chuàng)建語音時,參數(shù)使用“EMMessage.Type.VOICE”,添加語音時,使用“VoiceMessageBody”類。[7]

      (4)接收消息。

      ①獲取消息:

      先注冊廣播,使用“NewMessageBroadcastReceiver msgReceiver=new NewMessageBroadcastReceiver();”,再編寫 BroadcastReceiver的相應(yīng)方法onReceive():

      public void onReceive (Context context,Intent intent){

      String msgId=intent.getExtras(“msgid”).toString();

      String msgFrom=intent.getExtras(“from”).toString();

      int msgType=intent.getIntExtra(“type”,0);

      Log.d(“main”,“new message id:”+msgId+“from:”+msgFrom+“type:”+msgType);

      EMMessage message=EMChatManager.getInstance().getMessage(msgId);}

      ②獲取聊天記錄:

      EMConversation conversation=EMChatManager.getInstance().getConversation(username|groupid);

      List〈EMMessage〉messages=conversation.getAllMessages()

      (二)資訊管理模塊

      通過資訊模塊,師生可以查看資訊,管理員可以發(fā)送、刪除、修改資訊。

      (1)申請資訊閱讀權(quán)限。

      EMGroupManager.getInstance().joinGroup

      (“easemob-demo#chatdemoui_1431950354833@con ference.easemob.com”);

      (2)獲取資訊。

      EMGroup group=EMGroupManager.getInstance().getGroup(groupId);//本地資訊

      EMGroup group=EMGroupManager.getInstance().getGroup(groupId);//服務(wù)器資訊

      (三)好友管理模塊

      (1)獲取好友列表。

      環(huán)信支持好友體系,控制發(fā)消息的權(quán)限。[8]需要事先設(shè)置:EMChatManager.getInstance().getChatOptions().setUseRoster(true);

      (2)添加好友。

      EMContactManager.getInstance ().addContact(toAddUsername,reason);

      (3)刪除好友。

      EMContactManager.getInstance ().deleteContact(username);

      (4)同意好友請求。

      EMChatManager.getInstance ().acceptInvitation(username);

      (5)拒絕好友請求。

      EMChatManager.getInstance ().refuseInvitation(username);

      四、系統(tǒng)測試和總結(jié)

      本系統(tǒng)進行了測試,會話、校園資訊運行界面如圖2~3所示。

      圖2 會話界面

      圖3 校園資訊界面

      系統(tǒng)適用于大中專院校學(xué)生,具有校園特色,師生、同學(xué)之間可以無障礙地交流、溝通和互動,傳輸各種圖片、文本和文件,分享校園資訊。操作簡單、功能實用,但在界面美觀和功能拓展上還有待進一步提升。

      [1]郭金尚.Android經(jīng)典項目案例開發(fā)實戰(zhàn)寶典[M].北京:清華大學(xué)出版社,2013.

      [2]施懿民.Android應(yīng)用測試與調(diào)試實戰(zhàn)[M].北京:機械工業(yè)出版社,2013.

      [3]羅雷,韓建文,汪杰.Android系統(tǒng)應(yīng)用開發(fā)實戰(zhàn)詳解[M].北京:人民郵電出版社,2014.

      [4]孟賀.基于Android的即時通訊系統(tǒng)的設(shè)計與實現(xiàn)[D].濟南:山東大學(xué),2014.

      [5]肖莉.基于P2P校園即時通信系統(tǒng)設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2012.

      [6]秦建,鄒凱,邰龍東,朱東亞,林春喜.基于Android的校園移動信息平臺設(shè)計與實現(xiàn)[J].電腦編程技巧與維護,2015(9):54-55.

      [7]張夢琦.基于Android平臺的移動智能點餐系統(tǒng)客戶端設(shè)計[J].軟件導(dǎo)刊,2014(5):96-97.

      [8]丁永明,紀方明.基于Android平臺移動學(xué)習(xí)軟件的研究與實現(xiàn)[J].數(shù)字通信世界,2011(1):66-68.

      猜你喜歡
      服務(wù)器端資訊好友
      資訊Information①
      屬羊
      淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
      成功(2018年10期)2018-03-26 02:56:14
      刪除好友
      雜文月刊(2017年20期)2017-11-13 02:25:06
      在Windows中安裝OpenVPN
      網(wǎng)頁防篡改中分布式文件同步復(fù)制系統(tǒng)
      資訊
      資訊
      中外會展(2009年6期)2009-08-07 01:51:12
      基于Struts的Web應(yīng)用系統(tǒng)數(shù)據(jù)驗證
      資訊
      全國新書目(2009年1期)2009-04-13 06:58:24
      东兰县| 容城县| 阿拉善右旗| 海城市| 清河县| 若羌县| 宁安市| 司法| 公安县| 西昌市| 盖州市| 松潘县| 平陆县| 进贤县| 班玛县| 长汀县| 堆龙德庆县| 山阴县| 宜黄县| 织金县| 论坛| 克什克腾旗| 遂宁市| 陆河县| 菏泽市| 蒙城县| 毕节市| 资兴市| 富阳市| 石门县| 弋阳县| 阳朔县| 龙里县| 广东省| 含山县| 山东省| 临泉县| 方正县| 临湘市| 岢岚县| 沽源县|