您的位置:首页 > 移动开发

Android NFC 门票系统手机端程序简介

2012-05-19 14:17 302 查看
在开发Android NFC 门票系统手机端程序过程中也碰到一些技术问题, 比如:

离线工作方式

Android NFC 门票系统开发的一个实际要求,是要求系统可以工作在离线和在线两种方式。这是很多大型的游乐活动都远离城区,缺乏可靠的网络支持,临时架设的网络总可能出现这样那样的问题,有些区域可能网络无法覆盖到。因此手机端程序在设计时考虑到这种离线工作方式。解决方法是通过腕带时芯片时内存以及Message queue来实现。

数据同步

手机端采用SQL Lite 作为数据存储,如何和后台mysql 数据同步,目前市场没有现成的有效的Android 平台上SQL Lite 和mysql 数据库同步的解决方案。解决方法是通过查询后台数据库有无变化,比如Hash值有无变化,手机端保留两个数据库,一个为工作数据库,一个为同步数据库,同步数据库完成和后台数据同步后,两个数据库完成切换(毫秒级),这样手机用户感觉不到下载数据的延迟。

使Home键,Power键等按钮失效

通常情况下,用户按Home键,Power键,Search 键,会退出当前应用的运行,这对于工作人员Scan 会用户腕带时会造成问题,这个手机端程序需要一旦运行后,只有管理员或是用户登出时,才可以主动退出运行,其它情况不能退出运行,也就是除了运行门票系统手机端程序外,普通工作人员无法退出程序运行(即使时重启后)。解决方法是重写一个Dummy的Home Screen activity ,用户按Home键时,还是回到门票系统手机端程序。再有是相应Boot
完成消息,手机通电启动后自动运行这个门票系统手机端程序等。

Nexsus S Gingerbread NFC 不稳定

在开发过程中,发现Sumsung 出厂时的版本NFC用两个问题,一个很容易就将NFC服务“搞死”,手机扫描一个支持paypass 的信用卡,NFC功能立马失效,再有随手机出厂的ROM中带有一个内置的NFC Tag原因,即使应用设置成前台方式工作参见Android
NFC 开发教程(2): ApiDemos->NFC->ForegoundDispatch 。这个应用也时不时的突然冒出来捣乱。解决方法是编译自定义的ROM,去掉这个内置应用,并升级到ICS。ICS版本下NFC可靠性大大提高。

等等,此外这里不便于描述一下实现的技术细节,发一些应用的截图,可以大致知道手机端应用目前提供的一些功能(这个列表在后面的时间将会不断扩充:-))

启动时数据同步操作,之后的同步为后台自动运行,支持3G,Wifi 网络(internet 可选)。





选择工作位置,可以扫描或是人工选择,工作位置可以是入口,出口,酒吧,工作地点的类型决定了系统手机端程序的工作方法:门禁或是POS机





工作人员登录,系统支持Staff, super user ,admin user 不同用户类别,支持权限管理。





选择门禁工作地点后菜单选择





选择POS工作地点后菜单选择





管理用户,支持白名单,黑名单,短消息,消费记录,扫描记录等。





门禁,扫描用户腕带(门票),读取芯片上信息,校验后决定是否允许该客人进入指定区域(如是否可以进入VIP区等),并显示该区域容量指示。





POS终端





付费,可以修改客人的order ,确定后,直接扫描客人腕带完成交易。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: