首页 > 其他分享 >Android NFC Mifare Tag 读写示例

Android NFC Mifare Tag 读写示例

时间:2023-07-31 17:03:44浏览次数:51  
标签:MifareClassic NFC 示例 读写 Tag Mifare









前面例子介绍了检测,读写NFC TAG开发的一般步骤,本例针对常用的Mifare Tag 具体说明。

Mifare Tag 可以有1K ,2K, 4K,其内存分区大同小异,下图给出了1K字节容量的Tag的内存分布:

Android <wbr>NFC <wbr>Mifare <wbr>Tag <wbr>读写示例

数据分为16个区(Sector) ,每个区有4个块(Block) ,每个块可以存放16字节的数据,其大小为16 X 4 X 16 =1024 bytes


每个区最后一个块称为Trailer ,主要用来存放读写该区Block数据的Key ,可以有A,B两个Key,每个Key 长度为6个字节,缺省的Key值一般为全FF或是0. 由 MifareClassic.KEY_DEFAULT 定义。

因此读写Mifare Tag 首先需要有正确的Key值(起到保护的作用),如果鉴权成功

auth = mfc.authenticateSectorWithKeyA(j,
MifareClassic.KEY_DEFAULT);

然后才可以读写该区数据。

本例定义几个Mifare相关的类 MifareClassCard ,MifareSector, MifareBlock 和MifareKey 以方便读写Mifare Tag.

Android 系统来检测到NFC Tag, 将其封装成Tag类,存放到Intent的NfcAdapter.EXTRA_TAG Extra 数据包中,可以使用MifareClassic.get(Tag) 获取对象的 MifareClassic类。







下面为读取Mifare card 的主要代码:







Android <wbr>NFC <wbr>Mifare <wbr>Tag <wbr>读写示例


本例下载



Tag tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);

// 4) Get an instance of the Mifare classic card from this TAG

// intent

MifareClassic mfc = MifareClassic.get(tagFromIntent);

标签:MifareClassic,NFC,示例,读写,Tag,Mifare
From: https://blog.51cto.com/u_3124497/6910157

相关文章

  • java 代理(静态代理、动态代理的不同实现)详解及示例
    文章目录一、代理构成1、代理介绍2、应用场景介绍二、静态代理1、示例1)、售票服务2)、售票3)、代售点服务4)、静态代理实现1、maven依赖2、实现三、动态代理1、InvocationHandler角色2、InvocationHandler的作用3、JDK的动态代理创建机制----通过接口1)、Proxy2)、InvocationHandler3)......
  • 2、【java线程及线程池系列】synchronized、ReentrantLock和ReentrantReadWriteLock介
    java线程及线程池系列文章1、【java线程及线程池系列】java线程及线程池概念详解2、【java线程及线程池系列】synchronized、ReentrantLock和ReentrantReadWriteLock介绍及示例3、【java线程及线程池系列】线程池ThreadPoolExecutor的类结构、使用方式示例、线程池数量配置原则和......
  • 2、【java程序运行监控byteman】使用示例(运行中方法耗时监控、javaagent监控、jvm监控
    文章目录一、统计方法耗时(程序运行中)1、创建示例类2、建立监控1)、获取运行程序的进程号2)、建立监控3、编制脚本4、检测脚本5、提交脚本6、验证7、卸载脚本二、其他示例1、javaagent示例(程序未运行)1)、创建示例类2)、编译及测试3)、编制脚本4)、运行脚本5)、测试2、监控jvm的类1)、创建......
  • Python elasticsearch 使用示例
    这里简单的罗列了些关于ES的自动化运维过程中可能用到的脚本DEMO创建索引并设置shards数#省略部分代码fromelasticsearchimportElasticsearchsrc_es=Elasticsearch(hosts=configs.es_source_host,maxsize=16)dest_es=Elasticsearch(hosts=configs.es_dest_host,ma......
  • 设计模式-迭代器模式在Java中使用示例
    场景为开发一套销售管理系统,在对该系统进行分析和设计时,发现经常需要对系统中的商品数据、客户数据等进行遍历,为了复用这些遍历代码,开发人员设计了一个抽象的数据集合类AbstractObjectList,而将存储商品和客户等数据的类作为其子类AbstractObjectList类的子类ProductList和Custo......
  • Delphi轻松读写NDEF文本、智能海报、应用控制等NFC标签
        NDEF全称NFCdataexchangeformat即nfc数据交换格式,是一种标准化的数据格式,可用于在任何兼容的NFC设备与另一个NFC设备或标签之间交换信息。数据格式由NDEF消息和NDEF记录组成。    NDEF信息可以写到不同类型的NFC芯片中,如NFC_Forum_Type2类的Ntag2x、FM1......
  • 关于vue element-admin 切换tag, 页面刷新 以及内存增加不释放问题
    1:切换tag,页面刷新,检查了路由,配置了  nocache:false,以及isKeep:true, 但是在页面tag切换时,还是会刷新,, 在生命周期中打印,发现能够打印,, 检查了代码,在组件引用中未发现v-if的使用, 最后竟查找,借鉴 https://blog.csdn.net/weixin_45616483/article/details/122959997 ......
  • ffmpeg + SDL2播放音频示例
    在网上搜罗了各种各样的样例代码,都存在各种各样的问题,调了好长时间终于能无杂音播放了由于个人场景需要本样例加了选择扬声器的功能不过有的可能还会有问题,目前ogg的文件都能播,mp3有的不行写一下网上的其他代码可能存在的问题和我的修改注:代码是C++17,如果编不过需要小改一下......
  • DataGrip下载安装及使用教程(详细版)
    DataGrip下载安装及使用教程(详细版)原文链接:https://baijiahao.baidu.com/s?id=1765146276556186482&wfr=spider&for=pc在日常的开发中,会借助于MySQL的图形化界面,来简化开发,提高开发效率。目前mysql主流的图形化界面工具,有Navicat、SQLyog、DataGrip等,最后一种DataGrip,这种......
  • @Around简单使用示例——SpringAOP增强处理
    @Around简单使用示例——SpringAOP增强处理@Around的作用既可以在目标方法之前织入增强动作,也可以在执行目标方法之后织入增强动作;可以决定目标方法在什么时候执行,如何执行,甚至可以完全阻止目标目标方法的执行;可以改变执行目标方法的参数值,也可以改变执行目标方法之后的返回......