`
chroya
  • 浏览: 661496 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android NFC简介

阅读更多

  

目录:

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 提供更低贷款和距离,并且低成本,不需要供电,不需要实现匹配,整个通信过程仅仅是短短的靠近一秒就能完成。

1.2 Android 上的 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 : 由应用程序构造的NDEFNFC Data Exchange Format NFC 数据交换格式)消息。

Ø  android.nfc.action.TECH_DISCOVERED :  现有的标准NFC 协议构造的消息。

Ø  android.nfc.action.TAG_DISCOVERED :不符合前面两种格式的消息。

1.3 Android 中的 NFC 通讯机制

           首先应用程序向系统注册感兴趣的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 分发系统流程图如下:

 

2.2 发送消息

       2.2.1 发送过程

首先取得一个NFCAdapter ,一般是使用默认的:

 

三个发送消息相关的API

Ø  public void setNdefPushMessage (NdefMessage message, Activity activity, Activity... activities)

设置NDEF 消息。API 文档上说这个方法设置之后不需要让用户操作,设备靠近会自行发出,但是经过尝试发现不行,也许是有什么没注意到的地方。

 

Ø  public void setNdefPushMessageCallback (NfcAdapter.CreateNdefMessageCallback callback, Activity activity, Activity... activities)

设置NDEF 消息的构造器,每次构造消息都会调用callbackcreateNdefMessage 方法获取NDEF 消息。

 

Ø  public void setOnNdefPushCompleteCallback (NfcAdapter.OnNdefPushCompleteCallback callback, Activity activity, Activity... activities)

设置NDEF 消息发送完毕之后的回调接口。

 

       2.2.2 NDEF 消息格式

一个NdefMessage 对象是由NNdefRecord 组成,NdefRecord 可以根据自己的需要去定义里面的内容,不过如果要构造公共的标准NdefRecord ,就需要查阅API 文档了。

简单的用法如下:

0
4
分享到:
评论

相关推荐

    android_nfc_demo.zip_AndroidBeamDemo_Androidnfc巡考_NFC P2P_NFC an

    一、Android Beam简介 Android Beam是Android系统中的一项特色功能,它利用NFC技术,让两台设备在靠近时能够快速传输数据,如联系人、图片、网页链接等。这一功能的核心在于NFC P2P模式,它允许设备间直接交换数据,...

    Android NFC Tag ID 读取

    Android NFC Tag ID 读取 Android NFC(Near Field Communication,近距离通信)技术是一种短距离无线通信技术,允许设备之间在近距离内进行数据交换。Android NFC Tag ID 读取是指在 Android 设备中读取 NFC 标签...

    android nfc 读写实例

    Android NFC 读写实例 Android NFC 是一种近场通信技术,允许设备在短距离内进行无线数据传输。 近年来,NFC 技术得到了广泛应用,Android 系统也提供了相关的开发接口。本文将介绍 Android NFC 开发实例,读取学生...

    Android NFC读卡 高频卡 RFID

    在Android平台上,NFC(Near Field Communication)技术是一种短距离无线通信方式,广泛应用于移动支付、数据传输、门禁系统等领域。本主题主要探讨的是如何使用Android NFC功能读取高频卡(HF Card),即RFID...

    Android NFC API Reference(官方,中文)

    Android NFC API Reference 是 Android 官方提供的 NFC(近场通信)API 参考手册,旨在帮助开发者了解 Android 设备如何与 NFC 标签及其他 Android 设备进行交互。 NFC(近场通信)是一种短程无线技术,需要在 4 ...

    Android NFC 架构

    主要包括Android NFC 系统层次架构,Code分布结构,code代码架构概括等等。

    Android NFC开发实战详解

    《Android NFC开发实战详解》这本书深入浅出地探讨了如何在Android平台上进行近场通信(NFC)技术的开发和应用。NFC是一种短距离无线通信技术,它允许电子设备之间进行非接触式点对点数据交换。在移动设备如智能手机...

    android NFC 公交卡信息读取demo

    在Android平台上,NFC(Near Field Communication)技术允许设备之间进行短距离通信,通常用于移动支付、数据交换、标签读取等场景。本教程将基于"android NFC 公交卡信息读取demo"来深入探讨如何利用Android NFC...

    android nfc 读取深圳通

    2. Android NFC API:Android系统提供了NFC相关的API,主要在`android.nfc`包下,包括`NfcManager`用于获取NFC服务,`Ndef`用于处理NDEF(NFC Data Exchange Format)数据,以及`Tag`类代表检测到的NFC标签。...

    android NFC (读取M1卡内容)

    在Android平台上,NFC(Near Field Communication)技术允许设备之间进行短距离通信,通常用于数据交换、支付和其他便捷的应用。M1卡,也称为MiFare Classic卡,是一种常见的接触式和非接触式智能卡,广泛应用于门禁...

    android nfc 读写demo

    1.支持android设备读取nfc贴纸数据 2.支持向nfc卡中写入相关的数据 3.操作非常简单,只需要在在Activity中的onResume、onPause、onDestroy、onNewIntent方法中调用nfc工具类的相关方法就ok了,完整的步骤请查看demo

    Android NFC 开发教程

    Android NFC(Near Field Communication)开发教程 随着移动设备技术的发展,NFC作为一种短距离无线通信技术,被广泛应用在各种场景中,如支付、数据传输、智能卡等。Android系统对NFC提供了强大的支持,使得开发者...

    Android NFC读取银行卡卡号

    实现了NFC读取中国银卡借记卡的卡号 如果发现卡号不对,可以看log中HexResult是否包含银行卡卡号,我只是直接截取HexResult字符串中我的银行卡卡号所在的那个位置的字符串 有什么问题可以私聊我,我有空且能解答就会...

    Android NFC 写URL

    在Android平台上,NFC(Near Field Communication)技术允许设备之间进行短距离通信,通常用于传输数据、支付等。本教程将详细介绍如何使用Android NFC功能来写入一个URL到NDEF(NFC Data Exchange Format)标签。 ...

    android nfc开发 demo

    Android NFC(Near Field Communication)开发是一项让Android设备能够进行近距离无线通信的技术,广泛应用于移动支付、数据传输、智能卡模拟等领域。在这个“android nfc开发 demo”中,我们将会探讨如何在Android...

    android NFC 官方文档

    Android NFC(Near Field Communication)是Android系统中用于短距离无线通信的技术,允许设备在近场内交换数据。这个技术广泛应用于移动支付、信息共享、智能卡模拟等多种场景。以下是对"android NFC 官方文档"中...

    Android nfc开发示例

    在Android平台上,NFC(Near Field Communication)技术是一种短距离无线通信方式,允许设备之间进行非接触式的数据交换。在Android应用开发中,NFC功能主要用于读取和写入智能卡、标签等NFC设备上的数据。下面我们...

    android nfc 动态注册

    在Android平台上,NFC(Near Field Communication)技术允许设备间短距离无线通信,常用于数据交换、支付、标签读取等场景。动态注册是Android NFC功能的一个重要特性,它允许应用在运行时根据需要注册或注销NDEF...

    Android-AndroidNFC任意模拟卡工具HCE

    Android NFC(Near Field Communication)是一种短距离无线通信技术,它允许设备在近场范围内进行数据交换。在Android系统中,NFC功能不仅用于简单的数据传输,还支持更高级的应用,如接触式支付、智能卡模拟等。...

    Android NFC Demo1

    Android NFC(Near Field Communication)是Android系统中一种用于短距离无线通信的技术,它允许设备在靠近时交换数据。在这个“Android NFC Demo1”项目中,我们可以深入探讨如何在Android平台上开发NFC相关的应用...

Global site tag (gtag.js) - Google Analytics