Android NFC之读卡器模式
NFC三种模式之读卡器模式
- 1.申请权限
- 2.过滤器的设置
- 3.接收卡片信息
- 仿真卡模式
NFC的工作模式
读卡器模式(Reader/writer mode)、仿真卡模式(Card Emulation Mode)、点对点模式(P2P mode)。
读卡器模式:读卡器模式本质上就是通过NFC设备(例如支持NFC的Android手机)从带有NFC芯片的标签、贴纸、报纸、明信片、名片等媒介读取信息,或将数据写到这些媒介中。
1.申请权限
<uses-permission android:name="android.permission.NFC" />
<uses-feature android:name="android.hardware.nfc" android:required="true" />
2.过滤器的设置
过滤器的设置(三种模式):
第一种模式:优先级最高。先判断是不是NDEF_DISCOVERED格式的数据,再判断NDEF_DISCOVERED数据的类型,只有与过滤器中两个条件都要求的一致,才会选择满足的activity 来处理。
<intent-filter><action android:name="android.nfc.action.NDEF_DISCOVERED" /><category android:name="android.intent.category.DEFAULT" /><data android:mimeType="text/plain" />
</intent-filter>
第二种模式:优先级次于第一种模式。满足TECH_DISCOVERED的设置,才会选择满足的activity 来处理。
<activity ...>...<intent-filter><action android:name="android.nfc.action.TECH_DISCOVERED" /></intent-filter><meta-dataandroid:name="android.nfc.action.TECH_DISCOVERED"android:resource="@xml/nfc_tech_filter" />
</activity>
在res下新建xml文件夹然后新建一个nfc_tech_filter.xml文件,添加进你需要支持的标签类型。
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"><!-- 可以处理所有Android支持的NFC类型 --><tech-list><tech>android.nfc.tech.IsoDep</tech></tech-list><tech-list><tech>android.nfc.tech.NfcA</tech></tech-list><tech-list><tech>android.nfc.tech.NfcB</tech></tech-list><tech-list><tech>android.nfc.tech.NfcF</tech></tech-list><tech-list><tech>android.nfc.tech.NfcV</tech></tech-list><tech-list><tech>android.nfc.tech.Ndef</tech></tech-list><tech-list><tech>android.nfc.tech.NdefFormatable</tech></tech-list><tech-list><tech>android.nfc.tech.MifareUltralight</tech></tech-list><tech-list><tech>android.nfc.tech.MifareClassic</tech></tech-list>
</resources>
第三种模式:优先级最低。只要满足NFC规范中的任一种则都就会响应。
<intent-filter><action android:name="android.nfc.action.TAG_DISCOVERED" />
</intent-filter>
3.接收卡片信息
private NfcAdapter mNfcAdapter;@Overridepublic void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {super.onViewCreated(view, savedInstanceState);mNfcAdapter = NfcAdapter.getDefaultAdapter(getContext());}//支持的标签类型private final int flag = NfcAdapter.FLAG_READER_NO_PLATFORM_SOUNDS| NfcAdapter.FLAG_READER_NFC_A| NfcAdapter.FLAG_READER_NFC_B| NfcAdapter.FLAG_READER_NFC_BARCODE| NfcAdapter.FLAG_READER_NFC_F| NfcAdapter.FLAG_READER_NFC_V;@Overridepublic void onResume() {super.onResume();mNfcAdapter.enableReaderMode(getActivity(), new NfcAdapter.ReaderCallback() {@Overridepublic void onTagDiscovered(Tag tag) {//TODO 这里处理标签信息}}, flag, null);}@Overridepublic void onPause() {super.onPause();mNfcAdapter.disableReaderMode(getActivity());}
各种标签解析见 Android NFC之标签解析
仿真卡模式
Android NFC之仿真卡模式
Android NFC之读卡器模式相关推荐
- Android nfc读卡模式流程
最近一个项目需要将Android的nfc接口底层通过串口对接到外围一个单片机上,而nfc设备是接在单片机上的,这就需要对Android的nfc框架进行梳理,确定与单片机对接的接口通讯:上网查找发现资料 ...
- Android NFC之仿真卡模式
NFC三种模式之仿真卡模式 1.申请权限 2.HostApduService实现 3.注册Service 4.apduservice.xml配置 5.动态注册AID 6.读卡器端Apdu处理 读卡器模 ...
- Android适配 - 实现4.3以后NFC的CardReader模式
Android 4.4更新了NFC的读卡器模式,具体API差异可以查看官方报告,本篇将梳理Android 4.3.Android 4.4以及之后版本的NFC读卡器模式的写法.(主要是对CPU卡的操作) ...
- Android NFC 标签读写Demo与历史漏洞概述
文章目录 前言 NFC基础 1.1 RFID区别 1.2 工作模式 1.3 日常应用 NFC标签 2.1 标签应用 2.2 应用实践 2.3 标签预览 2.4 前台调度 NFC开发 3.1 NDEF数 ...
- nfc卡模式与标准模式_NFC 的通信模式。什么是点对点模式,什么是模拟卡和读卡器模式...
展开全部 1.卡模式 该模式就是将具有NFC功能的设备模拟成一张非接触卡,如门禁卡.银行卡等. 卡模式可以实现"移动e68a8462616964757a686964616f313333663 ...
- android使用NFC的读模式
NFC读模式工作流程:NFC芯片轮询执行读模式.点对点和卡模式,当把卡片靠近手机的NFC天线的时候,NFC会识别到卡,然后 把卡对象装到intent里面,并发送广播NfcAdapter.ACTION_ ...
- Android NFC读卡以及NFC的三种模式
第一步添加权限: <uses-permission android:name="android.permission.NFC" /> <uses-permissi ...
- Android NFC开发
由于工作关系,需要做智能卡(JavaCard Applet)和Android NFC方面的开发. NFC主要有3种模式:读卡器模式, 卡模拟模式, 点到点模式. 本文主要参考了Android官方Car ...
- Android NFC开发-理论篇
Android NFC开发-理论篇 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/CSDN_GYG/article/details/72884849 ...
最新文章
- 对于bhuman中striker文件解析
- 需要使用新应用以打开此steam链接_steam社区界面打不开怎么办?完美解决方法看这里...
- Android在Java获取组件,在Java中解析HTML以获取Android应用
- Laravel中一些要记住 的写法
- Linux 0.00 的编译和运行
- iOS 10 消息推送(UserNotifications)秘籍总结(二)
- SAP UI5 jQuery.sap.formatMessage
- 最大子序和:单调队列维护一个上升序列
- NHibernate之旅(4):探索查询之条件查询(Criteria Query)
- Fibonacci in the Pocket 模拟
- jsp人事管理系统_人事管理系统(论文+源码)(SSH+MYSQL+JSP+HTML5)
- NetBeans在Apache基金会取得的进展
- 服务器和桌面操作系统有什么区别,服务器和桌面操作系统的区别
- iOS11适配-Safe Area
- dell客服(dell客服维修中心)
- SQL Server 2008删除行出现错误“已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行”
- JavaScript数据结构——图的实现
- G120变频器准备就绪和运行指示信号解析
- Nginx安装在服务器
- 计算机英语职业规划,英语专业职业规划
热门文章
- 用户登录界面的测试用例分析
- 十大经典排序算法视频讲解
- linux中stty参数,stty命令
- cold fusion
- 如何查找论文中的代码、测试集或数据集
- 软考高级系统架构设计师备考攻略
- 高中计算机表格制作,高中信息技术《在网页中插入表格》说课稿
- Android中实现倒计时的几种方式
- Redefinition of (enumerator/class) 错误总结
- Windows登录虚拟机Ubuntu系统登录不成功解决办法(ssh: connect to host 192.168.220.128 port 22: Connection refused)