目录:
Android NFC
.
1
1
简介
...
1
1.1
什么是
NFC
.
1
1.2 Android
上的
NFC
.
2
1.3 Android
中的
NFC
通讯机制
...
2
2
用法
...
3
2.1
读取
tag
.
3
2.2
发送消息
...
5
2.2.1
发送过程
...
5
2.2.2 NDEF
消息格式
...
6
1
简介
1.1
什么是
NFC
近场通讯
(Near Filed Communication)
技术是一种近距离的高频无线通信技术,
通常距离是4
厘米或更短。 NFC
工作频率是 13.56M Hz,
传输速率是 106kbit/s
到 848kbit/s. NFC
总是在一个发起者和一个被动目标之间发生。发起者发出近场无线电波,这个近场可以给被动目标供电。这些被动的目标包括不需要电源的标签,卡,也可以是有电源的设备。
与其他无线通信技术比较, 例如蓝牙和 WiFi
, NFC
提供更低贷款和距离,并且低成本,不需要供电,不需要实现匹配,整个通信过程仅仅是短短的靠近一秒就能完成。
Android
在Android
2.3(API Level 9)
中首次增加了对NFC
的支持,但是只能读取tag
,有很多不完善的地方。在Level 10
中增加了对tag
的写,不过构造和解析消息都是需要自己来处理。
后来的Android
4.0 ICS(API Level 14)
中全面提升了NFC
的功能,支持两台NFC
手机的相互通信,并且封装了方便的消息构造和解析接口。
Android
提供了三种级别的NFC
消息:
Ø
android.nfc.action.NDEF_DISCOVERED
:
由应用程序构造的NDEF
(NFC Data Exchange Format
:NFC
数据交换格式)消息。
Ø
android.nfc.action.TECH_DISCOVERED
:
现有的标准NFC
协议构造的消息。
Ø
android.nfc.action.TAG_DISCOVERED
:不符合前面两种格式的消息。
首先应用程序向系统注册感兴趣的Intent
,当系统的NFC
服务收到一条tag
之后,会打开合适的应用并传递Intent
。如果同时有N
个应用都对这个tag
感兴趣,并且都不在前台,则系统会弹出选择列表让用户选择,如果其中某个应用在前台,则系统直接将Intent
投递到此应用。具体如何注册见后面的用法。
2
用法
2.1
读取
tag
首先,必须在manifest
中申明NFC
的权限和feature
:
<
uses-permission
android:name
=
"android.permission.NFC"
/>
<
uses-feature
android:name
=
"android.hardware.nfc"
/>
如果应用必须拥有NFC
的手机才能安装,则在
uses-feature
中加上属性
android:required
=
"true"
,
方便marekt
过滤。
然后注册感兴趣的Intent
。
u
NDEF
格式的消息
:
这里的data
指定了感兴趣的数据类型和格式,系统会自动过滤出符合条件的Intent
。上面这个data
表示只接受纯文本的数据。如果只接受
http://www.qq.com
这个网址,则data
定义如下:
注意,这个类型
<
category
android:name
=
"android.intent.category.DEFAULT"
/>
要加上。
u
TECH
格式的消息
:
meta-data
中的resource
指定了对使用了哪些技术的tag
感兴趣。filter_nfc.xml
的内容如下:
这里是将所有的tech
标准都放到里面了,实际使用的时候不应如此,应该取一个或多个子集。这里关于tech
列表的子集定义还有一些规范,网上可以查到,就不赘述。
u
TAG
格式的消息
:
如此,则所有没有被捕获的Intent
就会发送到这里来,算是各种未知NFC
数据的集散地。
Tag
分发系统流程图如下:
首先取得一个NFCAdapter
,一般是使用默认的:
三个发送消息相关的API
:
Ø
public
void setNdefPushMessage (NdefMessage message, Activity activity, Activity...
activities)
设置NDEF
消息。API
文档上说这个方法设置之后不需要让用户操作,设备靠近会自行发出,但是经过尝试发现不行,也许是有什么没注意到的地方。
Ø
public
void setNdefPushMessageCallback (NfcAdapter.CreateNdefMessageCallback callback,
Activity activity, Activity... activities)
设置NDEF
消息的构造器,每次构造消息都会调用callback
的createNdefMessage
方法获取NDEF
消息。
Ø
public
void setOnNdefPushCompleteCallback (NfcAdapter.OnNdefPushCompleteCallback
callback, Activity activity, Activity... activities)
设置NDEF
消息发送完毕之后的回调接口。
一个NdefMessage
对象是由N
个NdefRecord
组成,NdefRecord
可以根据自己的需要去定义里面的内容,不过如果要构造公共的标准NdefRecord
,就需要查阅API
文档了。
简单的用法如下:
分享到:
相关推荐
一、Android Beam简介 Android Beam是Android系统中的一项特色功能,它利用NFC技术,让两台设备在靠近时能够快速传输数据,如联系人、图片、网页链接等。这一功能的核心在于NFC P2P模式,它允许设备间直接交换数据,...
Android NFC Tag ID 读取 Android NFC(Near Field Communication,近距离通信)技术是一种短距离无线通信技术,允许设备之间在近距离内进行数据交换。Android NFC Tag ID 读取是指在 Android 设备中读取 NFC 标签...
Android NFC 读写实例 Android NFC 是一种近场通信技术,允许设备在短距离内进行无线数据传输。 近年来,NFC 技术得到了广泛应用,Android 系统也提供了相关的开发接口。本文将介绍 Android NFC 开发实例,读取学生...
在Android平台上,NFC(Near Field Communication)技术是一种短距离无线通信方式,广泛应用于移动支付、数据传输、门禁系统等领域。本主题主要探讨的是如何使用Android NFC功能读取高频卡(HF Card),即RFID...
Android NFC API Reference 是 Android 官方提供的 NFC(近场通信)API 参考手册,旨在帮助开发者了解 Android 设备如何与 NFC 标签及其他 Android 设备进行交互。 NFC(近场通信)是一种短程无线技术,需要在 4 ...
主要包括Android NFC 系统层次架构,Code分布结构,code代码架构概括等等。
《Android NFC开发实战详解》这本书深入浅出地探讨了如何在Android平台上进行近场通信(NFC)技术的开发和应用。NFC是一种短距离无线通信技术,它允许电子设备之间进行非接触式点对点数据交换。在移动设备如智能手机...
在Android平台上,NFC(Near Field Communication)技术允许设备之间进行短距离通信,通常用于移动支付、数据交换、标签读取等场景。本教程将基于"android NFC 公交卡信息读取demo"来深入探讨如何利用Android NFC...
2. Android NFC API:Android系统提供了NFC相关的API,主要在`android.nfc`包下,包括`NfcManager`用于获取NFC服务,`Ndef`用于处理NDEF(NFC Data Exchange Format)数据,以及`Tag`类代表检测到的NFC标签。...
在Android平台上,NFC(Near Field Communication)技术允许设备之间进行短距离通信,通常用于数据交换、支付和其他便捷的应用。M1卡,也称为MiFare Classic卡,是一种常见的接触式和非接触式智能卡,广泛应用于门禁...
1.支持android设备读取nfc贴纸数据 2.支持向nfc卡中写入相关的数据 3.操作非常简单,只需要在在Activity中的onResume、onPause、onDestroy、onNewIntent方法中调用nfc工具类的相关方法就ok了,完整的步骤请查看demo
Android NFC(Near Field Communication)开发教程 随着移动设备技术的发展,NFC作为一种短距离无线通信技术,被广泛应用在各种场景中,如支付、数据传输、智能卡等。Android系统对NFC提供了强大的支持,使得开发者...
实现了NFC读取中国银卡借记卡的卡号 如果发现卡号不对,可以看log中HexResult是否包含银行卡卡号,我只是直接截取HexResult字符串中我的银行卡卡号所在的那个位置的字符串 有什么问题可以私聊我,我有空且能解答就会...
在Android平台上,NFC(Near Field Communication)技术允许设备之间进行短距离通信,通常用于传输数据、支付等。本教程将详细介绍如何使用Android NFC功能来写入一个URL到NDEF(NFC Data Exchange Format)标签。 ...
Android NFC(Near Field Communication)开发是一项让Android设备能够进行近距离无线通信的技术,广泛应用于移动支付、数据传输、智能卡模拟等领域。在这个“android nfc开发 demo”中,我们将会探讨如何在Android...
Android NFC(Near Field Communication)是Android系统中用于短距离无线通信的技术,允许设备在近场内交换数据。这个技术广泛应用于移动支付、信息共享、智能卡模拟等多种场景。以下是对"android NFC 官方文档"中...
在Android平台上,NFC(Near Field Communication)技术是一种短距离无线通信方式,允许设备之间进行非接触式的数据交换。在Android应用开发中,NFC功能主要用于读取和写入智能卡、标签等NFC设备上的数据。下面我们...
在Android平台上,NFC(Near Field Communication)技术允许设备间短距离无线通信,常用于数据交换、支付、标签读取等场景。动态注册是Android NFC功能的一个重要特性,它允许应用在运行时根据需要注册或注销NDEF...
Android NFC(Near Field Communication)是一种短距离无线通信技术,它允许设备在近场范围内进行数据交换。在Android系统中,NFC功能不仅用于简单的数据传输,还支持更高级的应用,如接触式支付、智能卡模拟等。...
Android NFC(Near Field Communication)是Android系统中一种用于短距离无线通信的技术,它允许设备在靠近时交换数据。在这个“Android NFC Demo1”项目中,我们可以深入探讨如何在Android平台上开发NFC相关的应用...