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 可选)。
![](http://www.imobilebbs.com/wordpress/wp-content/uploads/2012/03/20120333001.png)
选择工作位置,可以扫描或是人工选择,工作位置可以是入口,出口,酒吧,工作地点的类型决定了系统手机端程序的工作方法:门禁或是POS机
![](http://www.imobilebbs.com/wordpress/wp-content/uploads/2012/03/20120322002.png)
工作人员登录,系统支持Staff, super user ,admin user 不同用户类别,支持权限管理。
![](http://www.imobilebbs.com/wordpress/wp-content/uploads/2012/03/20120322010.png)
选择门禁工作地点后菜单选择
![](http://www.imobilebbs.com/wordpress/wp-content/uploads/2012/03/20120322003.png)
选择POS工作地点后菜单选择
![](http://www.imobilebbs.com/wordpress/wp-content/uploads/2012/03/20120322006.png)
管理用户,支持白名单,黑名单,短消息,消费记录,扫描记录等。
![](http://www.imobilebbs.com/wordpress/wp-content/uploads/2012/03/20120322005.png)
门禁,扫描用户腕带(门票),读取芯片上信息,校验后决定是否允许该客人进入指定区域(如是否可以进入VIP区等),并显示该区域容量指示。
![](http://www.imobilebbs.com/wordpress/wp-content/uploads/2012/03/20120322004.png)
POS终端
![](http://www.imobilebbs.com/wordpress/wp-content/uploads/2012/03/20120322007.png)
付费,可以修改客人的order ,确定后,直接扫描客人腕带完成交易。
![](http://www.imobilebbs.com/wordpress/wp-content/uploads/2012/03/20120322008.png)
离线工作方式
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 可选)。
![](http://www.imobilebbs.com/wordpress/wp-content/uploads/2012/03/20120333001.png)
选择工作位置,可以扫描或是人工选择,工作位置可以是入口,出口,酒吧,工作地点的类型决定了系统手机端程序的工作方法:门禁或是POS机
![](http://www.imobilebbs.com/wordpress/wp-content/uploads/2012/03/20120322002.png)
工作人员登录,系统支持Staff, super user ,admin user 不同用户类别,支持权限管理。
![](http://www.imobilebbs.com/wordpress/wp-content/uploads/2012/03/20120322010.png)
选择门禁工作地点后菜单选择
![](http://www.imobilebbs.com/wordpress/wp-content/uploads/2012/03/20120322003.png)
选择POS工作地点后菜单选择
![](http://www.imobilebbs.com/wordpress/wp-content/uploads/2012/03/20120322006.png)
管理用户,支持白名单,黑名单,短消息,消费记录,扫描记录等。
![](http://www.imobilebbs.com/wordpress/wp-content/uploads/2012/03/20120322005.png)
门禁,扫描用户腕带(门票),读取芯片上信息,校验后决定是否允许该客人进入指定区域(如是否可以进入VIP区等),并显示该区域容量指示。
![](http://www.imobilebbs.com/wordpress/wp-content/uploads/2012/03/20120322004.png)
POS终端
![](http://www.imobilebbs.com/wordpress/wp-content/uploads/2012/03/20120322007.png)
付费,可以修改客人的order ,确定后,直接扫描客人腕带完成交易。
![](http://www.imobilebbs.com/wordpress/wp-content/uploads/2012/03/20120322008.png)
相关文章推荐
- Android系统架构和程序结构简介
- 基于Android NFC的门票系统
- Android应用程式编译成系统程序简介
- Android应用程式编译成系统程序简介
- android调用系统程序
- Android系统属性简介
- 让python在android系统上飞一会儿:第四节 使用WebView制作程序界面
- Android 蓝牙开发(一)Android系统的蓝牙模块简介
- 统一ANDROID与IOS两个平台的程序入口&&区分平台的组件简介
- Android调用系统自带的下载程序进行下载。
- android获取应用程序判断是系统程序还是应用程序并且判断在sd卡中还是内存中
- qt编写的android程序在android系统中运行,中文显示乱码的解决方法
- Android获取系统已安装应用软件程序(apk)信息
- Android 调用系统的拍相程序进行录像
- (OK) 在Android系统上运行C/C++程序
- 【译】Android系统简介
- android 判断应用程序是系统程序还是用户程序
- Android系统简介
- 自己动手清除Android系统中的不良程序