一种基于Android平台的NFC读写方法技术

技术编号:12071431 阅读:91 留言:0更新日期:2015-09-18 04:35
一种基于Android平台的NFC读写方法,首先利用美国标准信息交换代码表,将写入的16进制数据转为可识别的数据,方便对写入数据的读取,以便查看;在写入数据方面,加入了对中文的支持,并消除了对写入数据长度的限制,利用数组元素复制方法对数据的byte型进行处理,对长度不足16位的补0,长度超过16位了的自动转行并写入到下一个块,同时跳过扇区的尾块,且可以自动转到下一个扇区,因此可以写入小于NFC卡片内存的任意长度的数据。本发明专利技术提供了一种读取方便,写入自由度高,对卡片内存零破坏的NFC卡片读取方法。

【技术实现步骤摘要】

本专利技术涉及外部数据处理、计算机应用领域,尤其涉及的是。
技术介绍
近年来,随着网络和通信技术的快速发展,智能手机在人们的生活中占据着越来越重要的位置,据美国市场研宄公司IDC统计报告称,2014年全球手机出货量达到11.67亿部,比2013年同比增长了 25.9%,同时搭载Android操作系统的智能手机在其中的比例已达到了 75%,稳居智能手机出货量第一名。NFC(Near Filed Communicat1n)近场通信技术是由非接触式射频识别(RFID)及互联互通技术整合演变而来,在单一芯片上结合感应式读卡器、感应式卡片和点对点的功能,能在短距离内与兼容设备进行识别和数据交换。NFC根据应用的不同可采用三种不同的工作模式:读写模式(也称读卡器模式、读写模式)、P2P(点对点)模式、卡模拟模式(也称支付模式)。在移动通信领域,人们可以在有NFC功能的Android智能手机上进行智能海报阅读,移动支付,门禁控制等操作,在旅游社交领域,博物馆可以使用NFC技术为游客提供服务,游客可以通过智能手机访问展品信息,同时还可以进行交流互动,发展前景广阔。而在NFC的读取方面,市面上的NFC读写软件在读取方面存在着如下缺陷:由于写入的数据以16进制的形式保存,读取的时候不能很好的识别;或者在写入数据方面不能写入中文和对写入数据的长度有限制(必须为16位),写入数据时可能会写到NFC卡片的保护块,而导致卡片的扇区出现死区而损坏,不方便写入。因此,在NFC的读写方面存在不足,需要改进。
技术实现思路
为了克服现有的NFC读写方法存在着读取识别不方便,对写入数据的要求苛刻(数据内容必须为16位,且不能为中文)的不足,本专利技术提供一种读取方便,写入自由度高,对NFC卡片内存零破坏的基于Android平台的NFC读写方法。本专利技术解决其技术问题所采用的技术方案是:,所述的读写方法包括以下步骤:I)打开本应用程序,判断设备状态:1.1)先检测设备支持NFC功能与否,若不支持则弹出提示框,退出应用程序;1.2)若设备支持该功能但未开启NFC功能,则出现提示框,提醒开启设备的NFC功能,开启后进行下一步;2)将标签靠近设备背面,等待程序读取;3)NFC卡片的读操作:当有标签靠近时,应用程序会提示发现一个NFC卡片信息,则启动Android标准配置文件中过滤器找到定义好的应用程序主活动Activity,用户可以在活动中执行需要的操作;4)NFC数据格式信息的获得:通过从主活动Activity中的意图过滤器获取卡片信息,并将其保存在数据格式信息类中;5)NFC数据格式信息的解析:通过获得的信息进行数据格式转化解析,从而得到卡片中写入的真实内容,即之前写入的数据;6)NFC卡片的写操作:当NFC应用程序发现一个NFC卡片时,会启动Android标准配置文件中定义好的对应主活动Activity,执行Activity中的写操作:6.1)获取卡片的对内存操作指令,并连接;6.2)在写入数据的过程中,设定好写入的块,防止写入扇区的尾块中而导致扇区出现死区的现象;6.3)将写入的数据转为byte型,并判断写入数据的大小,如果超出范围,提示写入数据超过内存,并返回,否则继续下一步;6.4)获取写入扇区的独立密码;6.5)判断写入数据的byte型长度,小于16byte的补0,大于16byte但小于48byte的自动转为存储与本扇区的其他块,大于48byte的,转到步骤6.3)获取下一个扇区的密码,再重复步骤6.4),直至存储结束;6.6)关闭卡片对内存操作的指令连接;7)读取存储的16进制数据内容:对写入存储的数据利用ASCII码扩展表进行转换,还原存储数据的内容。进一步,步骤3)中发现卡片和卡片的分发系统包括以下步骤:3.1)如果目标 NFC 卡片包含了系统支持的 NDEF (NFC Data Exchange Formate)消息,即NFC数据转换格式消息,则NFC系统模块将直接把此NDEF消息分发给感兴趣的Activity活动类,如果有目标Activity,则直接分发给此活动类,否则继续下一步;3.2)如果目标NFC卡片包含了系统不支持的NDEF消息,或者3.1)中没有目标Activity,则NFC系统模块将尝试分发一个ACT1N_TECH_DISCOVERED发现支持类型的通知;NFC系统模块在分发此通知时,将首先分析目标卡片所支持的使用技术,然后寻找注册了支持这些卡片技术的目标活动Activity,并将意图1ntent分发给Activity ;如果没有合适的目标Activity,则转入下一步;3.3)NFC系统模块将分发ACT1N_TAG_DISCOVERED通知给注册了该通知的感兴趣目标活动Activity。再进一步,步骤4)中的获取卡片信息的读取方法为:先获得卡片对内存的操作指令,然后再获取每个内存扇区的密码,找到要读取数据的块,再将内存中的16进制数据每2位或者4位进行美国标准交换信息码扩展码转换,从而识别中文内容,最后关闭对内存的操作指令,完成整个读取过程。本专利技术的技术构思为:对NFC卡片的内容读取方法进行了改进,利用ASCII (美国标准信息交换代码)码扩展表,使其读取内容支持的范围变大;在写入前,首先判断卡片的内存大小,然后获取扇区和块等信息,并获取每个扇区的密码;写入数据时,将写入数据转换为byte型,对不足16位的长度或者超过16位的byte型数据,利用数组元素复制的方法对数据进行分割和补充,消除对写入数据的苛刻要求的影响,使得写入数据更加自由简单;同时,在判断卡片信息时,能够识别卡片的尾块,从而在写入数据时,避免写入尾块而导致卡片出现死区而损坏。本专利技术的有益效果为:不仅写入自由度高,而且对NFC卡片内存零破坏。【附图说明】:图1是读取写入数据前的界面。图2是读取写入数据后的界面。图3是转换为ASCII码的界面。【具体实施方式】下面结合附图对本专利技术作进一步描述。参照图1?图3,,包括以下步骤:I)打开本应用程序,判断设备状态:1.1)先检测设备支持NFC功能与否,若不支持则弹出提示框,退出应用程序;1.2)若设备支持该功能但未开启NFC功能,则出现提示框,提醒开启设备的NFC功能,开启后进行下一步;2)将标签靠近设备背面,等待程序读取;3) NFC卡片的读操作:当有标签靠近时,应用程序会提示发现一个NFC卡片信息,则启动Android标准配置文件中过滤器找到定义好的应用程序主活动Activity,用户可以在活动中执行需要的操作;4)NFC数据格式信息的获得:通过从主活动Activity中的意图过滤器获取卡片信息,并将其保存在数据格式信息类中;5)NFC数据格式信息的解析:通过获得的信息进行数据格式转化解析,从而得到卡片中写入的真实内容,即之前写入的数据;6)NFC卡片的写操作:当NFC应用程序发现一个NFC卡片时,会启动Android标准配置文件中定义好的对应主活动Activity,执行Activity中的写操作:6.1)获取卡片的对内存操作指令,并连接;6.2)在写入数据的过程中,设定好写入的块,防止写入扇区的尾块中而导致扇区出现死区现象;6.3)将写入的数据转为byte型,并判断写入数据的大小,如果本文档来自技高网...
一种基于Android平台的NFC读写方法

【技术保护点】
一种基于Android平台的NFC读写方法,所述方法包括以下步骤:1)打开本应用程序,判断设备状态,过程如下:1.1)先检测设备支持NFC功能与否,若不支持则弹出提示框,退出应用程序;1.2)若设备支持该功能但未开启NFC功能,则出现提示框,提醒开启设备的NFC功能,开启后进行下一步;2)将标签靠近设备背面,等待程序读取;3)NFC卡片的读操作:当有标签靠近时,应用程序发现一个NFC卡片信息,它会启动Android标准配置文件中过滤器找到定义好的应用程序主活动Activity,用户可以在活动中执行事务操作;4)NFC数据格式信息的获得:通过从主活动Activity中的意图过滤器获取卡片信息,并将其保存在数据格式信息类中;5)NFC数据格式信息的解析:通过获得的信息进行数据格式转化解析从而得到卡片中写入的真实内容,即先前写入的数据;6)NFC卡片的写操作:当NFC应用程序发现一个NFC卡片时,会启动Android标准配置文件中定义好的对应主活动Activity,执行Activity中的写操作:6.1)获取卡片的对内存操作指令,并连接;6.2)在写入数据的过程中,设定好写入的块,防止写入扇区的尾块中而导致扇区出现死区现象;6.3)将写入的数据转为byte型,并判断写入数据的大小,如果超出范围,提示写入数据超过内存,并返回,否则继续下一步;6.4)获取写入扇区的独立密码;6.5)判断写入数据的byte型的总长度,小于16byte的补0,大于16byte但小于48byte的自动转为存储与本扇区的其他块,大于48byte的,转到步骤6.3)获取下一个扇区的密码,再重复步骤6.4),直至存储结束;6.6)关闭卡片的对内存操作指令的连接;7)读取存储的16进制数据内容,对写入存储的数据进行ASCII码扩展码转换,还原存储数据的内容。...

【技术特征摘要】

【专利技术属性】
技术研发人员:张贵军龚伟奇陈铭王宇凯姚俊贺智远周晓根
申请(专利权)人:浙江工业大学
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1