资源描述
毕业设计安卓电子名片管理器的设计与实现 学生姓名: 学号: 系 部: 计算机工程系 专 业: 计算机科学与技术 指导教师: 年 月毕业设计(论文)任务书毕业设计(论文)题目: 安卓电子名片管理器的设计与实现 系部: 计算机工程系 专业: 计算机科学与技术 学号: 学生: 指导教师(含职称): 1课题意义及目标当今社会,社交频繁,名片的需求量非常大。传统名片一般都是纸质的,看似简单,但要经过多道工序才能到使用。印刷方式、印刷难易、印刷用纸选择;名片的具体内容;设计大致思路;包括校稿都是需要用户考虑的因素,并且易丢失,难管理。当人们因各种因素需要更换名片信息的时候,需重新制作名片,难免造成了资源浪费。2主要任务系统采用MVC架构,实现技术需用Java语言编写。设计详细申请流程和软件运行流程服务器的设计,实现永久备份恢复电子名片夹功能。用户可以互相交换电子名片。用户能够拍照纸质名片获取名片文字信息,识别及生成二维码名片。3主要参考资料1 郭宏志. Android应用开发详解M.电子工业出版社,2010.2 高峰. 二维条形码手机识别系统的设计与实现D.北京邮电大学,2008.3 夏伟. 电子名片掘金新商务时代J .大众商务, 2007,15:01-02.4 阿离. Android5.0棒棒糖轻度体验J.电脑迷,2015,01:01-02.4进度安排设计(论文)各阶段名称起 止 日 期1需求分析:基于任务说明,查阅Android资料3月3日至3月13日2概要设计:依据需求设计电子名片整体方案3月14日至3月31日3详细设计:分模块依次实现电子名片各项功能4月1日至5月10日4测试维护:对软件进行测试,记录测试用例。5月11日至5月21日5设计论文:依据相关要求,完成论文写作6月01日至6月12日审核人: 年 月 日安卓电子名片管理器的设计与实现 摘 要随着社会各行业的不断发展,面对种类繁多的社交名片,面对面的交换纸质名片已经很难跟上现代化、无纸化管理的步伐,而当今计算机和智能手机的飞速发展弥补了这些缺陷,运用现代化手段进行科学管理,已经成为名片交换和保存亟待解决的课题之一。本软件以Eclipse为开发工具,利用Java语言,通过对Android平台的系统架构和应用程序进行学习,设计出一款基于Android的电子名片管理软件。本软件实现的功能不仅包括电子名片的添加、修改、删除、查询功能,而且实现了拍照识别纸质名片,扫描识别二维码名片,注册登录,互传分享电子名片,备份和恢复电子名片夹等功能,满足用户对电子名片夹的需求。本软件的设计遵循标准的开发流程,首先进行需求分析,然后确定电子名片夹的功能,再编写程序的代码,调试程序,运行程序,并对程序进行优化完善。本软件利用Android提供的各种组件对界面进行设计,能够很好地支持用户体验。关键词:Android,电子名片,二维码The Design and Implementation of Electronic Business Card Manager Based on AndroidAbstractWith the continuous development of social various sectors, social business card has more and more kinds. Face-to-face exchange of paper card is hard to keep up with the pace of the modernization and paperless management.The rapid development of computers and smart phones makes up for these deficiencies. The use of modern means of scientific management has become one of the most important topics to exchange business cards and save.The software bases on Eclipse,uses the Java language. Designers study by the Android platforms system architecture and application and then design an electronic business card management software bases on Android. The functions of the software include not only the addition,modification, deletion, search functions of e-card,but also achieve a photograph identification paper business card, a two-dimensional code scanning identification cards, registration and landing,sharing electronic business cards, backup and restore electronic business card. These functions will satisfy usersthe needs of Electronic card holder. The software is designed following the standards of development process. It begins with a needs analysis, and then determines the function of electronic business card holder, and then writes program code, debugs, runs the program, and optimizes the program. Designing the interface by using the various components of the Android, the software can greatly optimize the usersexperience.Keywords: Android,Electronic business card,Two-dimensional code第 2 页 共 II 页太原工业学院毕业设计(论文)目 录1绪论11.1引言11.2课题研究背景11.2.1课题背景11.2.2研究方法21.2.3研究工具31.3 设计意义31.4 国内外研究现状42可行性研究62.1技术可行性62.1.1硬件可行性62.1.2软件可行性62.1.3人员可行性62.2经济可行性62.2.1 经济效益62.2.2 社会效益62.3操作可行性72.4法律可行性73需求分析83.1概述83.1.1 用户特征83.1.2 条件和限制83.2功能需求83.2.1 用例图83.2.2 功能描述93.3性能需求113.3.1 数据准确性113.3.2 时间特性113.3.2 适应性114系统设计124.1技术架构设计124.2功能概要设计134.3功能详细设计154.4数据库设计165软件实现185.1服务端数据库连接实现185.2软件功能实现185.2.1用户注册登录模块实现185.2.2侧边导航栏模块实现215.2.3电子名片夹(万友夹)模块实现225.2.4同步模块实现265.2.5欢迎引导模块实现285.2.6拍照纸质名片识别信息功能295.2.7二维码的生成和识别306软件测试326.1软件测试概述326.1.1软件测试目的326.1.2软件测试的原则326.2软件测试环境336.3测试用例336.3.1功能测试336.4测试结论357结论与展望367.1结论367.2完成内容367.3尚存在的问题377.4展望37参考文献38第 页 共 页致谢39太原工业学院毕业设计(论文)1绪论1.1引言 生活节奏日益增快的今天,网络已经深入社会,信息成为了非常重要的资源。人们对信息的认识和运用渐渐广泛。从传统的信件邮递发展成Email,从逛商场购物到网上下单送货上门,传统的热弄信息管理系统已经远远不能满足快节奏、高效率的现代生活需要,落后的管理技术阻碍了信息的交流与共享。同时,网络技术的普及,如何通过网络来实现对科技信息的远程访问与远程管理,从而实现对信息的交流与共享成为当务之急。随着社会各行业的不断发展,面对种类繁多的社交名片,面对面的交换纸质名片已经很难跟上现代化、无纸化管理的步伐,而当今计算机和手机通讯技术的飞速发展弥补了这些缺陷,运用现代化手段进行科学管理,已经成为名片交换和保存亟待解决的课题之一。电子名片管理器可以实现名片信息的绿色无纸化管理和保存。伴随着互联网的蓬勃发展,越来越多的人将个人信息与Internet融合在一起,当人们因各种因素需要更换名片信息的时候,需要重新制作名片,难免造成了资源浪费。本系统就是在这样一个社会背景下开发的。本软件可以极大的提高名片管理效率,在设计时充分考虑了用户的方便与灵活性,既能实现对名片夹信息的高效管理和控制,又能满足用户对二维码电子名片的需求。最重要的是,它颠覆了传统通讯录方式和名片的绿色无纸化管理。1.2课题研究背景 1.2.1课题背景 随着社会发展的日新月异,商业来往日渐广泛。人与人之间的交往也日益频繁,于是,人们手中便出现了名目繁多的通讯录、名址录、名片夹等对好友或者客户进行管理的工具,但是,一张张名片上的信息虽然不多,却占据了很大的空间;同时,这些传统的手动管理方式存在着不易更新、不易存放、容易丢失、难以备份等重大缺陷;而建立自己的电子文档对名片进行管理虽然客服了以上的缺点,但是查询效率低,特别是当数据量十分庞大时,劣势更加明显。随着商务通的出现,虽然实现了可构造查询条件的名片电子化管理,但价格昂贵,难以在广大客户中进行全面普及。随着安卓智能手机的普及,因此开发一个既可以存储信息,又具有更新、查询等功能,同时价格又能为广大消费者接受的多功能安卓电子名片管理器就显得十分必要。1.2.2研究方法本软件采用三层架构MVC模式进行设计。MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,所谓MVC模式,是用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。Model(模型)是应用程序中用户处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。View(视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。Controller(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。MVC 分层有助于管理复杂的应用程序,可以在一个时间内专门关注一个方面。例如,可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易。而本软件也正是遵循MVC模式的核心思想来进行工作的,用户通过多种方式把好友的名片信息存储在数据库中,用户每次进入电子名片夹中,将会从数据库中把好友的全部信息读取出来,显示在视图布局中,用户可以点击每张电子名片上的相应信息去查看或者联系好友。1.2.3研究工具软件开发工具为Eclipse,开发环境:jdk1.7,开发语言:java。Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。其特点:(1)从编写、查错、编译、帮助等等各方面为Java语言贴身定做。(2)可无限扩展的强大插件功能。(3)众多公司、厂商、组织的鼎立支持。(4)开放,自由,免费。后台数据库为MySQL,优点主要有:它使用的核心线程是完全多线程,支持多处理器。它通过一个高度优化的类库实现SQL函数库并像他们能达到的一样快速,通常在查询初始化后不该有任何内存分配。没有内存漏洞。MySQL可以工作在不同的平台上。支持C、C、Java、Perl、PHP、Python和TCL API。1.3 设计意义当今社会是一个信息化的社会,在这个信息高速流通的社会中,网络成了一种必不可少的渠道。它遍布全球,与人们的生活越来越密切。眼下,每个人由于交友需要会有多个账号信息,多个手机号码。而手机用户又需要对应的软件来保存这些信息,不方便把一个人的信息统一起来。基于这些需求和现状,设计一款电子名片夹尤为重要,此款软件是一款集所有好友信息于一身的应用型软件。在它的每张电子卡上,都保留了传统手机通讯录的功能,同时加入了QQ、微信等各种新兴通讯方式的信息,既可以像纸质名片一样简单直观的查看好友信息又可以取代纸质名片。此款电子名片夹软件最大的特点就是把好友各种与联系方式有关的信息以电子卡片形式展示出来。一应俱全的好友信息展示卡,永久的云备份存储,能让用户更快捷的掌握联系人好友的信息。只需一个账号,便可进行信息的互传与分享。既保证绿色无纸化,又响应国家的节能环保政策。“颠覆传统通讯录,告别纸质名片”。根据课题研究的需求分析和市场上所流行的软件的流程,本软件基于网页的方式进行访问,采用MVC模式。功能上涵盖电子名片保存,共享互传的整个过程,并具有以下优点。无纸化。从名片信息的保存、修改、名片的互传共享等均存储在数据库中,无需印制纸质名片,电子名片夹可以云备份到服务端也无需资料夹等存放工具。不受时间限制。以往在名片交换的是时候,不管是名片制作或者交换时间的限制非常大,使用电子名片,用户之间可以随时随地进行名片的互传。不受地点限制。在目前交换名片的时候,需要当面进行交换,使用电子名片,只要用户有手机,便可以轻松进行名片的在线查看、编辑、修改、互传名片。数据化。名片所有相关数据均存储在数据库中,在进行名片信息存储、电子名片查询、名片交换互传时,相关数据均可在软件中获得。保密化。通过设计一个是否要开启互传交换名片开关,用户可以根据自己的实际情况,设置是否让他们获取自己的电子名片,有效的保护用户隐私和信息安全。1.4 国内外研究现状目前国内做的比较好的一款Android电子名片管理器是名片全能王,可快速、精准识别多种语言名片,自动存入通讯录;为名片添加图文、视频,让名片立体展示个人、产品、公司。随时更新的商务人脉库,帮助拜访客户,进行客户关系管理。但是它有很大的缺点,电子名片管理还是脱离不了传统通讯录的束缚,不能快捷的看到用户的个人信息,操作比较繁琐;另外电子名片信息简单,缺少QQ、微信、微博等新兴社交方式。今年备受关注的Android5.0 Lollipop5棒棒糖 被Google发布,而以“卡片”为设计原型的Material Design5,希望在虚拟世界中模拟出物理世界当中纸质材质的感觉,但又具备灵活伸缩、扩展的特性,让它显得既灵动,又整齐。Google在虚拟世界里构建了几个突出,让卡片、按钮等视觉元素铺在上面,而且还运用阴影以及空间来突出内容。Android5.0原声的通讯录则完全采用这样的设计,使得通讯录更具人性化,纸质化,电子卡片化。文献5指出,Android5.0最大的变化在于UI用户界面的设计,全新的UI界面采用了“Material Design”设计规范。这也是Android5.0最重要的一部分,Lollipop标志着Google在用户界面上已经完全拥抱了Material Design的理念,新的用户界面更加简洁,色彩更加丰富,动画效果更加合理生动,同时加入实时阴影的3D视图,更多地使用卡片风格的显示效果,这样的效果就像是翻阅一本赏心悦目的画册,在明亮纯净的底色之上是简单而优雅的文字,让上面的内用有一种跃然纸上的感觉。2可行性研究2.1技术可行性2.1.1硬件可行性软件的硬件配置要求:支持Android操作系统的嵌入式平台设备,支持wifi功能,带触摸屏功能。2.1.2软件可行性本软件是基于Android系统的一款手机应用,在Android4.0及以上版本的安卓智能手机上运行。2.1.3人员可行性对Java开发语言相对比较熟悉熟悉Eclipse的操作熟悉MySQL和Android SQLite数据库并有过开发经验2.2经济可行性2.2.1 经济效益本软件适用于商务人士等交换名片,管理名片等情况,为提高工作效率、降低人力物力成本为目的,间接方面能带来一定的经济收益,并且本软件的开发成本相对较低,无需购置额外硬件支持,总体来说效益远大于成本。2.2.2 社会效益本软件主要服务于社交频繁的商务人士,在提高工作效率的同时并能实现名片交换和管理全程“绿色无纸化”,是一种快捷、新型、经济的处理手段,响应国家的节能环保政策。2.3操作可行性用户在首次进入本软件的时候,可以通过浏览欢迎引导界面之后便能够熟练掌握本软件的主要功能和使用操作;另外软件也加入了目前市场主流的软件中侧边导航元素,用户可以一目了然地看到软件的四大模块,并且根据提示,快速上手使用。2.4法律可行性本软件是在老师的指导下完全由本人设计和完成。提交的毕业设计安卓电子名片管理器的设计与实现及相关设计内容是本人在指导教师指导下独立研究、编写、完成的,在开发时所利用的相关资料均已在参考文献中列出。3需求分析3.1概述3.1.1 用户特征使用本软件的用户群非常广泛,它非常适用于具有如下特点的人员:(1)工作中与外界联系非常频繁;(2)可无限工作比较繁忙,惜时如金;(3)与外界的联系成为开展工作的关键因素,信息丢失或损坏可能带来严重损失;(4)社交账户多,需要账户信息管理。3.1.2 条件和限制考虑到本软件使用的广泛性,在设计时应注意软件可适配目前市场上主流的480*800、720*1280、1280*1920三大屏幕分辨率的安卓智能手机。因为本软件管理的信息属个人隐私信息,必须注意信息的安全防范。同时应以标准的数据形式来实现软件功能,以方便数据的共享。3.2功能需求3.2.1 用例图用例图是由参与者(Actor)、用例(Use Case)以及它们之间的关系构成的用于描述系统功能的动态视图。用例图展示了用例之间以及同用例参与者之间是怎样相互联系的。用例图用于对系统、子系统或类的行为进行可视化,使用户能够理解如何使用这些元素,并使开发者能够实现这些元素。本软件的用例图如图3.1会员用例图和图3.2游客用例图所示:软件的使用人员主要包括2种:会员和游客。会员的功能主要有:浏览电子名片夹信息功能;登录功能;登录后可以对个人信息进行管理,包括生成二维码名片、获取用户专属ID号用于电子名片互传共享等;对电子名片信息进行管理,包括增加、删除、编辑、查询电子名片功能等;电子名片夹的云备份和云恢复功能;拍照识别名片功能;二维码名片识别和生成功能。游客的功能主要有:注册成为会员的功能;浏览电子名片夹信息功能;电子名片信息管理功能;拍照识别名片功能;二维码名片识别和生成功能。 图3.1 会员用例图 图3.2 游客用例图3.2.2 功能描述根据用户特征分析以及用例分析,本软件主要包括12个功能模块,分别为:浏览功能,查看详细资料功能,电子名片信息管理功能(增加、删除、修改、查询功能),拍照识别纸质名片功能,二维码识别和生成功能,登录注册功能,电子名片夹云备份和云恢复功能,电子名片的互传共享功能,帮助功能。(1)浏览功能以列表的方式列出所有的记录(每项记录只列出姓名、职位、单位、头像);可点击选定一项记录,下拉显示该记录的所有域。(2)查看详细资料功能显示用户选定记录的详细信息。(3)查询功能用户可以通过姓名匹配查询;精确查询或模糊查询;单项查询或组合查询;(4)增加功能增加一条新的记录,四种方式:扫二维码添加;ID添加;拍照识别名片添加;手动添加;(5)删除功能删除一条记录,并且提供确认机制。(6)修改功能修改任意一条记录的所有域,其中姓名不能为空。(7)拍照识别纸质名片功能用户通过安卓手机拍照纸质名片,快速获取纸质名片信息,并保存为电子名片。(8)二维码名片的生成和识别功能软件可以通过用户输入个人信息后,在线生成自己的二维码名片,并可以让其他用户通过扫描添加。(9)登录注册功能对登录用户的身份进行验证,通过者可以使用软件云备份和云回复功能,以及挂载个人电子名片到云端供其他用户下载。(10)电子名片夹的云备份和云恢复功能用户可以把本地的电子名片夹数据在线备份到服务器中,更换设备或者丢失数据后,也可以在线恢复电子名片夹数据。(11)电子名片的互传共享功能用户之间可是通过互相扫描二维码交换电子名片,也可以通过用户账户ID一键获取对方电子名片,便捷绿色无纸化的互传共享。(12)帮助功能为用户提供帮助,快捷便捷了解软件功能和使用操作。3.3性能需求3.3.1 数据准确性查询时应保证查全率,所有相应域包含查询关键字的记录都应能查到;查询时应保证查准率,查到的记录应与给定的单项或组合查询条件完全匹配。3.3.2 时间特性一般操作的响应时间应在1-2秒内,对扫描二维码名片和拍照纸质名片的操作,以及电子名片夹数据的备份和恢复也应在可接受的时间内完成。3.3.2 适应性满足个人使用的需求;对前面提到的运行环境要求不应存在困难。4系统设计4.1技术架构设计安卓电子名片管理器选用MVC架构,使用Java语言。采用三层设计模式,通过Eclipse技术、JDBC技术、MySQl技术、SQlite技术、Servlet技术进行设计。系统三层设计架构如图4.1所示。图4.1 软件三层架构本软件技术架构具体设计如图4.2所示。在本软件中,软件数据主要由实体层实现面向对象思想中的“封装”,核心实体类设计了用户注册实体类RegisterActivity、编辑信息实体类PersonInfoActivity、名片夹实体类MainFragment、个人卡实体类PersonalCenterFragment、云同步实体类ShareFragment、设置实体类SettingFragment等。系统表示层主要由xml技术实现,核心页面上有用户登录页面login_fragment.xml、用户注册页面register_fragment.xml、电子名片夹页面main_fragment.xml、个人卡页面person_center_fragment.xml、设置页面setting_fragment.xml、云同步页面share_card_fragment.xml等。图4.2 软件技术架构4.2功能概要设计根据安卓电子名片管理器的需求分析和功能设计分析,软件取名为万友,即万千朋友,也指这款软件包括一个好友所有的联系方式,每张电子名片上可以浏览到好友相关的联系方式,同时方便用户互相推荐使用 。安卓电子名片管理器(以下简称万友)的功能概要设计,如图4.3所示。图4.3 功能概要设计图根据功能概要设计图得知,本软件需设计四个模块:万友电子名片夹模块、个人电子卡模块、同步模块、设置模块。(1)万友电子名片夹模块万友电子名片夹模块主要包括添加、编辑、删除电子名片(下称万有卡)、电子名片列表四个子模块。在论文的功能需求分析中,四种添加电子名片的方式是本设计的重点也是难点,其中的一种方式是拍照识别名片,用到的是OCR光学识别字符技术;另外一种是通过ID添加,用户通过注册获得用户ID,这个ID是唯一标识用户身份的标志,在这里称为万友号,用户可以根据这个ID用来获取其他注册用户的电子名片信息。(2)个人电子卡模块个人电子卡模块主要包括编辑个人电子卡信息、个人电子卡展示、获取万友号、生成二维码信息四个子模块。(3)同步模块同步模块主要包括备份电子名片夹、恢复电子名片夹、上传个人电子名片三个子模块。(4)设置模块设置模块主要包括注册账户、登录账户、切换账户、帮助、推荐分享、万友号开关等六个子模块。4.3功能详细设计本软件涉及到的部分基础数据相关类图如图所示。 图4.4 名片信息封装类 图4.5 名片夹适配器类 图4.6个人卡类 图4.7 设置类4.4数据库设计本软件涉及到的相关数据库表设计如下所示。(1)客户端电子名片信息资料表:该表主要用于存放名片的基本信息。设计如表4.1所示。表4.1电子名片信息资料表(cardmsg)字段名名称类型索引_id(unsigned)integer姓名namevarchar(20)职位postvarchar(20)手机mobilePhonevarchar(20)邮箱emlvarchar(20)QQqqvarchar(20)个人网址urlvarchar(20)续表4.1电子名片信息资料表(cardmsg)字段名名称类型微博weibovarchar(20)微信wechatvarchar(20)公司名称companyvarchar(20)座机号码telPhonevarchar(20)地址addressvarchar(20)头像保存路径headUrlvarchar(20)(2)服务端用户管理表:该表主要用于存放用户的账户信息和基本信息。设计如表4.2所示。表4.2服务端用户管理表(cardinfo)字段名名称类型用户号user_namechar10密码pass_wordchar8是否分享信息给其他用户isSharechar8姓名namevarchar(20)职位postvarchar(20)手机mobilePhonevarchar(20)邮箱emlvarchar(20)QQqqvarchar(20)个人网址urlvarchar(20)微博weibovarchar(20)微信wechatvarchar(20)公司名称companyvarchar(20)座机号码telPhonevarchar(20)地址addressvarchar(20)5软件实现5.1服务端数据库连接实现利用JDBC来实现对数据库的连接和一般处理。具体实现数据库连接的主要代码如下:(1)调用Class.forName()方法加载驱动程序:Class.forName(com.mysql.jdbc.Driver);(2)定义数据库连接的地址,不同数据库连接地址不一样:String mysqlURL=jdbc:mysql:/localhost:port/dbname;(3)调用getConnection()方法建立连接:Connection conn=DriverMannager.getConnection(URL,数据库用户名,数据库密码);(4)使用createStatement方法创建Statement语句对象。(5)执行数据库语句:Statement提供了executeQuery、executeUpdate和execute三个方法,分别用于查询语句、插入删除修改语句和通用语句(既可查询又可增删改)。(6)对数据库返回的结果集ResultSet进行处理。(7)关闭连接,释放资源。5.2软件功能实现软件界面设计整体色调朴素大方,标题栏深灰蓝色给人沉稳大方的商务感觉,符合本应用目标人群;底色则采用8%灰色,给人最舒适的视觉感受。侧边导航栏设计符合用户的使用习惯,方便用户操作使用。5.2.1用户注册登录模块实现(1)用户注册软件注册界面如图5.1、5.2所示。 图5.1 注册(输入法不可见)界面 图5.2 注册(输入法可见)注册界面注册界面各控件及其功能说明如表5.1所示。表5.1注册界面各控件及其功能说明表控件控件名称控件功能万友号-EditText控件user_name_Et输入注册万友号(用户名)密码-EditText控件pass_word_Et1输入注册密码确认密码-EditText控件pass_word_Et2输入注册确认密码完成-Button按钮ok_Bt完成注册用户想使用软件的备份、恢复电子名片夹功能,需要先注册。注册时需要填写万友号即用户名,密码,确认密码,三项全部填写完成后并通过验证后,点击完成按钮进行注册验证,如果验证通过,则提示注册成功并跳转到登录界面,如果认证失败则提示错误信息。注册功能的逻辑实现为:客户端获取用户的输入内容,并通过HttpGet方式把用户输入的万友号和密码发送给服务器Servlet,服务器获取客户端传送过来的万友号和密码,从数据库中查询万友号是否被注册过,如果没有找到相应的数据,则认为注册成功,返回注册成功信息;如果找到有对应的记录,则认为注册失败,返回注册失败信息。客户端HttpResponse接收并解析服务端返回来的数据,通过判断返回数据提示用户是否注册成功。用户注册成功后,客户端自动跳转到登录界面。(2)用户登录软件登录界面如图5.3、5.4所示。 图5.3 登录(输入法不可见)界面 图5.4 登录(输入法可见)界面登录界面各控件及其功能说明如表5.2所示。表5.2登录界面各控件及其功能说明表控件控件名称控件功能万友号-EditText控件user_name_Et输入登录万友号(用户名)密码-EditText控件pass_word_Et输入登录密码登录-Button按钮login_Bt完成登录新注册-Button按钮register_Bt跳转到注册界面用户在注册成功后或者使用其他功能的时候,需要进行登录。用户输入万友号和密码,点击登录按钮进行登录认证,如果认证通过则可以使用软件的备份和恢复等功能,如果认证失败则会提示错误信息。登录功能的逻辑实现与注册的逻辑实现类似,在此做简要概述,也是通过HttpGet方式携带登录参数并发出登录请求给服务器,服务器接受并处理请求数据并返回给客户端登录结果。通过登录注册可以看到,软件做了人性化的设置,当用户使用登录注册功能时,当弹出输入法的时候,输入框会自动向上移动,避免遮输入法挡住输入框,使得用户输入更加快捷方便。5.2.2侧边导航栏模块实现软件侧边导航界面如图5.5所示。图5.5 侧边导航界面侧边导航界面各控件及其功能说明如表5.3所示。表5.3侧边导航界面各控件及其功能说明表控件控件名称控件功能侧边导航-ResideMenu控件resideMenu控件显示侧边导航万友夹-ResideMenuItem控件mainItem显示导航:万友夹个人卡-ResideMenuItem控件personalCenterItem显示导航:个人卡设置-ResideMenuItem控件settingItem显示导航:设置同步-ResideMenuItem控件shareItem显示导航:同步用户通过左滑或者点击显示侧边导航按钮可看到整款软件的四大部分:万友夹、个人卡、设置、同步。点击每个条目,加载相应的功能界面。左侧导航主题主要是用的是ResideMenu框架控件,属于自定义控件,继承FrameLayout,通过自定义编写实现效果。左侧导航四个子模块主题主要是用的是ResideMenuItem控件,属于自定义控件,继承LinearLayout,通过自定义编写实现效果。核心代码如下:resideMenu = new ResideMenu(this);resideMenu.setBackground(R.drawable.menu_background);/设置背景resideMenu.attachToActivity(this);resideMenu.setScaleValue(0.6f);/设置侧滑左右显示比例mainItem = new ResideMenuItem(this,R.drawable.menu_item_icon_wanyoujia, 万友夹);mainItem.setOnClickListener(itemListener);personalCenterItem = new ResideMenuItem(this,R.drawable.menu_item_icon_person, 个人卡);personalCenterItem.setOnClickListener(itemListener);settingItem = new ResideMenuItem(this,R.drawable.menu_item_icon_set,设置);settingItem.setOnClickListener(itemListener);shareItem = new ResideMenuItem(this, R.drawable.menu_item_icon_share,同步);shareItem.setOnClickListener(itemListener);5.2.3电子名片夹(万友夹)模块实现软件电子名片夹如图5.6、5.7所示。 图5.6 万友夹界面1 图5.7 万友夹界面2电子名片夹界面各控件及其功能说明如表5.4所示。表5.4电子名片夹界面各控件及其功能说明表控件控件名称控件功能侧边导航按钮-ImageView控件img_ResideMenu点击显示侧边导航搜索按钮-ImageView控件img_Search搜索电子名片添加按钮-ImageView控件img_More显示4种添加电子名片方式扫码按钮-ImageButton按钮barcode_Bt跳转到扫描二维码界面万友号按钮-ImageButton按钮wanyoumaAdd_Bt跳转到万友号添加界面拍照按钮-ImageButton按钮takephoto_Bt跳转到拍照名片界面手动添加按钮-ImageButton按钮manuallyAdd_Bt跳转到手动添加界面名片夹列表-ListView控件mListView显示电子名片夹列表字母提示框-TextView控件dialog屏幕中间显示姓名首字母字母列-SideBar控件sideBar屏幕右边显示姓名首字母列用户在首次进入电子名片夹(万友夹)中时候,由于本地没有名片数据,界面显示无数据,并提示用户点击添加按钮img_More,点击后弹出选择框,分别为是扫码添加按钮barcode_Bt、万友号添加按钮wanyoumaAdd_Bt、拍照名片添加按钮takephoto_Bt、手动添加按钮manuallyAdd_Bt,用户根据相应的方式添加电子名片,万友夹界面如图5.8所示,四种添加方式如图5.9所示。 图5.8 万友夹界面 图5.9 四种添加方式用户添加电子名片信息后,将名片信息保存到数据库电子名片信息资料表cardmsg中(可在表4.1中查看表结构),在重新加载万友夹界面的时候,从数据库中cardmsg表读取数据显示名片夹列表mListView上,显示万友夹效果,效果如图5.6所示。核心代码如下:impl_card = BeanFactory.getImpl(CardMsgDao.class);new Thread(new Runnable() Overridepublic void run() cardMsgPO = new CardMsgPO(0, name, post, mobilephone,email, qq, url, weibo, wechat, address,company, , tellphone, );if (photoUrl != null & !.equals(photoUrl) cardMsgPO.setHeadUrl(photoUrl);long insert = impl_card.insert(cardMsgPO);Message msg = mHandler.obtainMessage();if (insert 0) msg.what = 1;msg.obj = impl_card.findAll();mHandler.sendMessage(msg); else msg.what = 2;mHandler.sendMessage(msg);).start();用户点击万友夹中的每张电子名片时,会下拉弹出电子名片详情,用户可以查看好友的电子名片信息,并选择相应的联系方式与好友进行联系。万友夹中每张电子名片点击下拉伸缩效果实现逻辑:通过查询文献和网络检索后,基于第三方开源库 ListViewAnimation ,加入自定义设计和改编来实现带有点击下拉伸缩效果的电子卡片的效果,使用步骤如下:(1)导入第三方库,设置Library(2)创建MyExpandableListItemAdapter继承ExpandableListItemAdapter,其中CardMsgPo是封装好的电子名片姓名,地址,电话等信息属性类,并且这些信息与本地SQLite的名片夹表连接和一一对应(3)方法调用如下mExpandableListItemAdapter=new MyExpandableListItemAdapter(mContext,MyApplication.getInstance().currentCardList);alphaInAnimationAdapter = new AlphaInAnimationAdapter(mExpandableListItemAdapter);alphaInAnimationAdapter.setAbsListView(mListView);mExpandableListItemAdapter.setLimit(1);mListView.setAdapter(alphaInAnimationAdapter);5.2.4同步模块实现软件同步模块界面如图5.10所示。图5.10 同步主界面同步界面各控件及其功能说明如表5.5所示。表5.5同步界面各控件及其功能说明表控件控件名称控件功能备份-RelativeLayout控件rl_upLoad备份万友夹恢复-RelativeLayout控件rl_downLoad恢复万友夹备份个人-RelativeLayout控件rl_share_person分享个人名片供其他用户下载用户在使用上述三个功能前,必须先登录成功或者是登录成功状态的,如果没有登录进行认证,不能使用此功能。这三个功能实现方式类似,在此介绍恢复功能如何实现。同步功能逻辑为:客户端查询本地数据库中所有电子名片信息和万友号,并通过HttpPost方式把用户的电子名片信息和万友号发送给服务器Servlet,服务器获取客户端传送过来的数据,从数据库中查询万友号是否被注册过,如果找到有对应的万友号,则把数据解析并插入到服务器用户管理表cardinfo中(表结构如表4.2所示),再返回是否同步成功信息。客户端HttpResponse接收并解析服务端返回来的数据,通过判断返回数据提示用户是否同步成功。核心代码如下:new Thread(new Runnable() Overridepublic void run() CardMsgDao impl = BeanFactory.getImpl(CardMsgDao.class);/查询数据库获得所有的电子名片信息List findAll = impl.findAll();f (findAll.size() = 0) mHandler.sendEmptyMessage(5);impl.close();return;impl.close();try HttpParams params = new BasicHttpParams();/ 超时设置/* 从连接池中取连接的超时时间 */ConnManagerParams.setTimeout(params, 1000);/* 连接超时 */HttpConnectionParams.setConnectionTimeout(params, 2000);/* 请求超时 */HttpConnectionParams.setSoTimeout(params, 4000);DefaultHttpClient client = new DefaultHttpClient(params);HttpPost post = new HttpPost(path);List nvps = new ArrayList();nvps.add(new BasicNameValuePair(user_name, user_name);nvps.add(new BasicNameValuePair(content, json_cards);post.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8);HttpResponse response = client.execute(post);HttpEntity entity = response.getEntity();if (response.getStatusLine().getStatusCode() = 200) /解析上传成功数据 else /解析上传失败数据).start();5.2.5欢迎引导模块实现软件欢迎引导界面如图5.11所示。 图5.11 欢迎引导界面用户首次打开软件时会出现四个欢迎界面,是专门为用户设计的快速了解软件的 防骚扰功能、UI设计理念,使用户能在美感中查看软件特色并快速学习软件的使用方法。欢迎引导界面各控件及其功能说明如表5.6所示。表5.6欢迎引导界面各控件及其功能说明表控件控件名称控件功能滑动页面容器-ViewPager控件pager显示控制欢迎引导界面页面适配器-GuideAdapter控件adapter装载欢迎引导数据核心代码如下:/ 获取页面实例pager = (ViewPager) findViewById(R.id.pager);/ 设置页面滑动监听器pager.setOnPageChangeListener();/ 创建页面适配器adapter = new GuideAdapter(this);/ 添加第一页adapter.addPage(R.drawable.guide1);/ 添加第二页adapter.addPage(R.drawable.guide2);/ 添加第三页adapter.addPage(R.drawable.guide3);/ 添加第四页adapter.addPage(R.drawable.guide);pager.setAdapter(adapter);5.2.6拍照纸质名片识别信息功能本软件为用户提供了通过使用拍照纸质名片识别并快速获取信息的功能,使用的技术是光学字符识别技术。软件拍照识别纸质名片信息功能如图5.12所示。图5.12 拍照识别功能光学字符识别(Optical Character Recognition,OCR),其工作原理为通过扫描仪、照相机等光学设备,将整页文本图
展开阅读全文