智慧商业

智慧交通 智慧商业 智慧安全

基于Android平台的智能导游系统的设计与实现

  随着全面建设小康社会的推进和人民生活水平的不断提高,旅游业成为一项极富发展潜力的产业。然而我国旅游业现阶段信息化水平低,旅游产品开发水平低,导游对旅游团游客的管理还停留在依靠团旗和喊话器来带领旅游团员,景点旅游团交叉重叠,环境嘈杂。在智能嵌入式系统得到广泛应用的背景下,开发具有良好用户体验、方便文件管理并且支持各种多媒体功能和网络应用的智能导游系统成为现实,并且国外出现了与人工智能技术结合,基于地理位置自动播放多媒体的导游系统。

  现有的智能导游系统平台多种多样,主要有WinCE和Linux.WinCE的使用需要微软公司授权,实现成本很高;Android系统本身是开源项目,源代码可以免费获取,比起WinCE,选用Android平台来实现智能导游系统可以大大降低系统成本。另外Android操作系统基于Linux2. 6 内核,具备高稳定性和良好的移植性。应用程序开发语言为Java,具备良好的可扩展性,便于软件升级和维护,加之系统本身提供了非常丰富的UI 组件,故可以设计出交互性好的系统应用。此外,Google 公司提供了Google API 来支持Android系统运行如Google maps 等应用,极大地方便了应用程序开发。

  Android 操作系统在2007 年由Google 公司发布,是一款专门面向移动平台的智能操作系统。Android系统软件层次结构包括操作系统、中间件、用户界面和应用程序,其层次结构框图如图1 所示。

  最底层为Linux2. 6 内核,Android 系统依赖其提供核心服务,如: 进程管理、内存管理、网络协议栈实现、硬件驱动和安全服务等。

  库和运行环境包含一些C /C + + 库,这些库能被Android 系统中不同的组件使用。核心库有: 系统C库、媒体库、图形库( SGL,3D Libraries ) 、数据库( SQLite) .核心库都针对嵌入式应用进行了优化。

  应用层框架提供了各种视图组件、内容提供器、资源管理器、活动管理器等一系列的系统服务,方便开发交互性好的应用程序。

  液晶触摸显示屏采用NEC 公司的4. 3的触摸液晶屏,分辨率为480 × 272,完全满足导游系统要求。

  智能导游系统的应用程序通过Android 2. 1 SDK来开发,数据存储采用嵌入式数据库SQLite.智能导游系统具有游客信息管理、多媒体应用、电子地图功能。智能导游系统功能模块框架设计如图3 所示。

  游客信息管理模块负责对团队游客的信息进行管理,支持数据存储、查询、修改等功能,以随时记录游客信息,方便对旅游团队进行管理。

  SQLite 是Android 系统所带的一个轻量级嵌入式数据库,支持SQL 语句,实现了事务的原子性、一致性、独立性及持久性( ACID) ,最大支持2 TB 的数据存储。

  SQLite 存储数据实现方式: 首先实例化一个SQLiteDatabase 类,即得到一个SQLite 数据库。SQLite数据库对象有3 个方法: ①onCreat( ) : 在数据库第一次生成的时候,系统调用这个方法用来生成数据库表;

  ②onUpgrade( ) : 当数据库更新的时候,系统会调用这个方法将数据库从旧版本跟新到新版本;③onOpen( ) : 打开数据库时的回调函数。通过在onOpen( ) 方法中调用数据库实例的execSQL( ) 方法,就可以在打开该数据库的时候执行一条SQL 语句,从而完成相应数据库操作功能。

  在数据库中对游客信息进行增加、修改、删除等操作的设计方案,通过采用事件监听模型来完成,从而使应用程序具有良好的交互性。笔者以查找功能的实现为例,来阐述智能导游系统对游客信息管理的查找事件处理的流程。

  多媒体应用模块主要完成3 个功能: 景点音频解说、景点图片预览、景点视频播放。利用解说音频的播放可以有效降低导游的工作强度,而且通过景点图片和视频的预览,可以补充展现景点珍贵的历史图片和特定时间段的景色,从而更加展现出景点的魅力。

  本研究以景点为西湖十景为例,多媒体功能主界面如图5 所示。

  多媒体应用模块的主界面采用组件ListView,以列表方式来展现。当开发人员进入多媒体应用模块的主界面后,在该界面的onCreate( ) 方法中,使用newListView( ) 语句新建一个ListView,通过setAdapter( )方法将其与数组适配器ArrayAdapter 进行绑定,从而在ListView 界面对数据进行显示。数组适配器Array-Adapter 将数组里定义的数据一一对应地显示在List-View 组件。

  本研究在多媒体应用主界面需要实现在不同的选项选择,并进入相应的界面功能。通过创建并绑定一个选项选择: itemSelectedListener,并通过setOnItemClickListener() 方法来将其绑定到Lisview.当选中相应的景点时,就可以进入对应的功能界面。

  Andriod 系统提供了常见的媒体编码、解码机制,如MP3, JPG,MPEG4,h. 264 等编码格式,因此可以非常容易地集成音频、视频和图片等多媒体到应用程序中。播放音频功能的实现需要实例化一个MediaPlayer类,然后调用setDataSource( ) 方法来设置音频文件的路径,再调用start( ) 实现音频的播放。视频播放的实现方法类似于音频播放,借助VideoView 和Media-Controller 组件即可以实现。图片预览的实现采用网格视图GridView,本研究通过调用网格视图的setAdapter方法将待预览的图片的引用和该视图对象进行绑定,可以将很多图片以一定的大小同时显示出来,适合图片预览的应用。

  视图模式功能模块根据选择来分别显示卫星图、街景图、交通图,并对地图进行放大和缩小操作。视图功能的实现通过采用MapView 类来实现。MapView类是一个展示地图的视图,它可以获取键盘事件( on-KeyDown 和onKeyUp) 来支持地图移动和缩放功能。

  除此之外,真钱捕鱼景点周围信息查询功能模块通过预先存储的内容,为游客提供周围的交通和食宿信息。

  Android 平台因其优异的性能和开放性,日益在智能手机、平板电脑、车载导航仪、数字电视等嵌入式终端系统获得广泛应用。本研究提出了一种基于Android平台的智能导游系统的设计和实现方案,分析了各个功能模块的设计和实现方法,测试结果表明,该系统运行稳定,操作简单,能提供丰富的多媒体应用并具有良好的人机交互界面,在旅游业中有广泛的应用前景。另外,该系统还可以结合地理位置信息,实现自动选择相应的多媒体应用的文件,该功能有待进一步研究和实现。