基于Android的校园多媒体即时通信系统的设计与实现

2018-03-20 01:36:39笪林梅
襄阳职业技术学院学报 2018年1期
关键词:服务器端资讯好友

笪林梅

(江苏财经职业技术学院 机械电子与信息工程学院, 江苏 淮安 223003)

移动互联网时代,人们之间的交流和互动越来越依赖于手机,尤其是当下的大学生们。即时通信(Instant Message,简称IM)已经成为时下应用最为广泛的一种实时通信方式。它建立在因特网和其它有线、无线网络基础之上,是一个集成了交流、资讯、娱乐、搜索、电子商务、办公协作和企业客户服务等为一体的综合性信息平台。

当前,大学生们喜爱的即时通信工具主要有QQ、微信和陌陌等,这些工具的功能已经非常完善。而本论文的研究目的是基于Android技术开发一种适用于校园的多媒体聊天系统,它能够效仿微信,以校园沟通交流为目的,实现用户的注册与登录、好友的管理(增删改查)、好友的一对一聊天、群聊、音视频共享、校园资讯发布等功能。系统界面简洁明了,易于用户操作,能够在校园推广使用。

一、Android关键技术

Android系统是一个开放的移动互联操作系统,它的底层基于Linux,系统架构采用分层模式,从低到高依次是Linux内核层、系统运行库层、应用程序框架层和应用程序层。[1]

Android包含四大组件,即 Activity、Service、BroadcastReceiver和 ContentProvider。[2]Activity是用户和应用程序交互的窗口,可以调用onCreate()、onStart()、onResume()、onPause()、onStop()、onDestroy()、onRestart()等方法分别实现创建、激活、恢复、暂停、停止、销毁和重启。Service是没有界面的Activity,一般运行于后台,封装一个完整的功能逻辑实现。BroadcastReceiver接受一种或者几种Intent为触发事件,接收相关消息,进行一些简单处理,当这些事件发生时,系统唤醒或传递消息到BroadcastReceiver,以此统一Android的事件广播模型。ContentProvider是Android系统提供的第三方应用数据的访问方案,共享自己的数据给外部来调用,提供数据访问接口。[3]

二、系统设计

本系统的主体功能是校园多媒体即时通信,能够满足师生和同学之间会话操作、资讯管理和好友管理三大需求。系统功能结构如图1所示。

图1 系统功能结构图

(一)系统技术架构设计

系统采用C/S架构,服务器端采用Openfire服务器,管理服务器端与客户端之间的连接和会话;客户端采用MVC模式构建。[4]

(二)系统数据库设计

在客户端,使用Android内置的SQLite作为本地数据库,存储系统信息和本地用户信息,包括好友聊天记录表、群聊天记录表、个人信息表等。在服务器端,使用MySQL,存储用户信息、用户分组和用户关系等。

(三)系统客户端设计

客户端工作时,向服务器端发送请求,通过XMPP协议获取服务。在通信时,通过GPRS网络,建立双方的连接。[5]

(1)注册模块:实现新用户的注册。

(2)登录模块:用户输入用户名和密码,正确则进入系统;错误则提示用户名不存在或密码错误。

(3)会话操作模块:进行文字聊天、图片聊天、语音聊天、视频聊天等,还可以传送文件。

(4)资讯管理模块:添加、删除、查询各类校园资讯。

(5)好友管理模块:添加、删除、查询好友。

三、系统主要模块实现

(一)会话操作模块

会话操作,可以是单聊,也可以是群聊。

(1)文本的发送。

①获取会话对象:

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

②创建文本:

EMMessage message=EMMessage.

createSendMessage(EMMessage.Type.TXT);

如果是群聊,应做设置“message.setChatType(ChatType.GroupChat);”

③添加文本消息:

TextMessageBody txtBody=new TextMessage-Body(content);

message.addBody(txtBody);

④设置接收消息的用户,把消息加到目标会话对象,发送消息:

message.setReceipt(username);

conversation.addMessage(message);

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

(2)图片的发送。

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

(3)语音的发送。

语音和文本、图片相似,但创建语音时,参数使用“EMMessage.Type.VOICE”,添加语音时,使用“VoiceMessageBody”类。[7]

(4)接收消息。

①获取消息:

先注册广播,使用“NewMessageBroadcastReceiver msgReceiver=new NewMessageBroadcastReceiver();”,再编写 BroadcastReceiver的相应方法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()

(二)资讯管理模块

通过资讯模块,师生可以查看资讯,管理员可以发送、删除、修改资讯。

(1)申请资讯阅读权限。

EMGroupManager.getInstance().joinGroup

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

(2)获取资讯。

EMGroup group=EMGroupManager.getInstance().getGroup(groupId);//本地资讯

EMGroup group=EMGroupManager.getInstance().getGroup(groupId);//服务器资讯

(三)好友管理模块

(1)获取好友列表。

环信支持好友体系,控制发消息的权限。[8]需要事先设置: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);

四、系统测试和总结

本系统进行了测试,会话、校园资讯运行界面如图2~3所示。

图2 会话界面

图3 校园资讯界面

系统适用于大中专院校学生,具有校园特色,师生、同学之间可以无障碍地交流、沟通和互动,传输各种图片、文本和文件,分享校园资讯。操作简单、功能实用,但在界面美观和功能拓展上还有待进一步提升。

[1]郭金尚.Android经典项目案例开发实战宝典[M].北京:清华大学出版社,2013.

[2]施懿民.Android应用测试与调试实战[M].北京:机械工业出版社,2013.

[3]罗雷,韩建文,汪杰.Android系统应用开发实战详解[M].北京:人民邮电出版社,2014.

[4]孟贺.基于Android的即时通讯系统的设计与实现[D].济南:山东大学,2014.

[5]肖莉.基于P2P校园即时通信系统设计与实现[D].成都:电子科技大学,2012.

[6]秦建,邹凯,邰龙东,朱东亚,林春喜.基于Android的校园移动信息平台设计与实现[J].电脑编程技巧与维护,2015(9):54-55.

[7]张梦琦.基于Android平台的移动智能点餐系统客户端设计[J].软件导刊,2014(5):96-97.

[8]丁永明,纪方明.基于Android平台移动学习软件的研究与实现[J].数字通信世界,2011(1):66-68.

猜你喜欢
服务器端资讯好友
资讯Information①
属羊
浅析异步通信层的架构在ASP.NET 程序中的应用
成功(2018年10期)2018-03-26 02:56:14
删除好友
杂文月刊(2017年20期)2017-11-13 02:25:06
在Windows中安装OpenVPN
网页防篡改中分布式文件同步复制系统
资讯
资讯
中外会展(2009年6期)2009-08-07 01:51:12
基于Struts的Web应用系统数据验证
资讯
全国新书目(2009年1期)2009-04-13 06:58:24