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之读卡器模式相关推荐

  1. Android nfc读卡模式流程

    最近一个项目需要将Android的nfc接口底层通过串口对接到外围一个单片机上,而nfc设备是接在单片机上的,这就需要对Android的nfc框架进行梳理,确定与单片机对接的接口通讯:上网查找发现资料 ...

  2. Android NFC之仿真卡模式

    NFC三种模式之仿真卡模式 1.申请权限 2.HostApduService实现 3.注册Service 4.apduservice.xml配置 5.动态注册AID 6.读卡器端Apdu处理 读卡器模 ...

  3. Android适配 - 实现4.3以后NFC的CardReader模式

    Android 4.4更新了NFC的读卡器模式,具体API差异可以查看官方报告,本篇将梳理Android 4.3.Android 4.4以及之后版本的NFC读卡器模式的写法.(主要是对CPU卡的操作) ...

  4. Android NFC 标签读写Demo与历史漏洞概述

    文章目录 前言 NFC基础 1.1 RFID区别 1.2 工作模式 1.3 日常应用 NFC标签 2.1 标签应用 2.2 应用实践 2.3 标签预览 2.4 前台调度 NFC开发 3.1 NDEF数 ...

  5. nfc卡模式与标准模式_NFC 的通信模式。什么是点对点模式,什么是模拟卡和读卡器模式...

    展开全部 1.卡模式 该模式就是将具有NFC功能的设备模拟成一张非接触卡,如门禁卡.银行卡等. 卡模式可以实现"移动e68a8462616964757a686964616f313333663 ...

  6. android使用NFC的读模式

    NFC读模式工作流程:NFC芯片轮询执行读模式.点对点和卡模式,当把卡片靠近手机的NFC天线的时候,NFC会识别到卡,然后 把卡对象装到intent里面,并发送广播NfcAdapter.ACTION_ ...

  7. Android NFC读卡以及NFC的三种模式

    第一步添加权限: <uses-permission android:name="android.permission.NFC" /> <uses-permissi ...

  8. Android NFC开发

    由于工作关系,需要做智能卡(JavaCard Applet)和Android NFC方面的开发. NFC主要有3种模式:读卡器模式, 卡模拟模式, 点到点模式. 本文主要参考了Android官方Car ...

  9. Android NFC开发-理论篇

    Android NFC开发-理论篇 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/CSDN_GYG/article/details/72884849 ...

最新文章

  1. 对于bhuman中striker文件解析
  2. 需要使用新应用以打开此steam链接_steam社区界面打不开怎么办?完美解决方法看这里...
  3. Android在Java获取组件,在Java中解析HTML以获取Android应用
  4. Laravel中一些要记住 的写法
  5. Linux 0.00 的编译和运行
  6. iOS 10 消息推送(UserNotifications)秘籍总结(二)
  7. SAP UI5 jQuery.sap.formatMessage
  8. 最大子序和:单调队列维护一个上升序列
  9. NHibernate之旅(4):探索查询之条件查询(Criteria Query)
  10. Fibonacci in the Pocket 模拟
  11. jsp人事管理系统_人事管理系统(论文+源码)(SSH+MYSQL+JSP+HTML5)
  12. NetBeans在Apache基金会取得的进展
  13. 服务器和桌面操作系统有什么区别,服务器和桌面操作系统的区别
  14. iOS11适配-Safe Area
  15. dell客服(dell客服维修中心)
  16. SQL Server 2008删除行出现错误“已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行”
  17. JavaScript数据结构——图的实现
  18. G120变频器准备就绪和运行指示信号解析
  19. Nginx安装在服务器
  20. 计算机英语职业规划,英语专业职业规划

热门文章

  1. 用户登录界面的测试用例分析
  2. 十大经典排序算法视频讲解
  3. linux中stty参数,stty命令
  4. cold fusion
  5. 如何查找论文中的代码、测试集或数据集
  6. 软考高级系统架构设计师备考攻略
  7. 高中计算机表格制作,高中信息技术《在网页中插入表格》说课稿
  8. Android中实现倒计时的几种方式
  9. Redefinition of (enumerator/class) 错误总结
  10. Windows登录虚拟机Ubuntu系统登录不成功解决办法(ssh: connect to host 192.168.220.128 port 22: Connection refused)