一、NFC介绍

NFC 是Near Filed Communication缩写,即近距离无线通讯技术,由飞利浦公司和索尼公司共同研发的NFC是一种非接触式识别和互联技术,可以在移动设备、消费类电子产品、PC和智能控件工具间进行近距离无线通信。NFC提供了一种简单、触控式的解决方案,可以让消费者简单直观的交换信息、访问内容与服务。

NFC 将非接触读卡器、非接触卡、和点对点(Peer to Peer)功能整合进一块单芯片,为消费者的生活方式提供了不计其数的全新机遇。这是一个开放接口平台,可以对无线网络进行快速、主动设置,也是虚拟连接器,服务于现有蜂窝状网络、蓝牙和无线设备。

与RFID(Radio Frequency Identification)一样,NFC信息也是通过频谱中无线频率部分的电磁感应耦合方式传递,但两者之间还是存在很大的区别。首先,NFC是一种提供安全、轻松、迅捷的通信无线连接技术,其传输范围比RFID小,RFID的传输范围可达到几米,几十米,但由于NFC提供了独特的信号衰减技术,相对于RDID来说NFC具有距离近,带宽高,能耗低的特点。其次,NFC与现有非接触智能卡技术兼容,目前已经成为得到越来越多技术厂商支持的正式标准。再次,NFC还是一种近距离连接协议,提供各种设备间轻松,快速,安全的而自动的通信。与无线世界的其他连接方式相比, NFC是一种近距离的私密通讯方式。最后,RFID更多的被应用在生产,物流,跟踪,资产管理上,而NFC则在门禁、公交、手机支付等领域发挥着巨大的作用。

同时,NFC还优于红外和蓝牙传输方式,作为一种面向消费者的交易机制,NFC比红外线更快,更可靠而且简单很多,不用向红外那样必须严格的对齐才能传输数据。与蓝牙相比,NFC面向近距离交易,适用于交换财务信息或敏感的个人信息等重要数据。蓝牙能够弥补NFC通信距离不足的缺点,适用于较长距离的数据通信。因此,NFC和蓝牙互为补充,共同存在。事实上,快捷轻型的NFC协议用于引导两台设备间的蓝牙配对过程,促进了蓝牙的使用。

NFC手机内置NFC芯片,组成RFID模块的一部分,可以当做RFID无源标签使用--用来支付费用;也可以当做RFID读写器--用作数据交换与采集。NFC技术支持多种应用,包括移动支付与交易,对等式通讯及移动中信息访问等。通过NFC手机,人们可以在任何地点,任何时间,通过任何设备,与他们希望得到的娱乐服务于交易联系在一起,从而完成付款,获取海报信息等。NFC设备可用于非接触式智能卡,智能卡的读写器终端,以及设备对设备的数据传输链路,其应用主要可用于四种基本类型:用于付款和购票,用于电子票证,用于智能媒体以及用于交换传输数据。

二、NFC模式

NFC支持两种通信模式。

主动模式:在这种模式,目标设备和发起通讯设备都有动力,互相之间可以轮流传输信号。被动模式:发起设备差生无线电信号,目标设备由这个信号的电磁成提供动力。目标设备通过调制电磁场回应发起设备。

操作模式:NFC设备可以运行在ISO/IEC 18092,NFC IP-1,和ISO-IEC 14443三种无线智能卡标准下。读/写:在这种模式下,开启NFC功能的手机可以读写任何支持的标签,读取其中的NFC数据格式标准的数据。点对点:这种模式下,两个NFC设备可以交换数据,例如可以交换虚拟名片等数据。

三、Android平台上的NFC开发

在Android NFC应用中,Android手机通常是作为手机中的发起者,也就是作为NFC的读写器,Android手机也可以模拟作为NFC通信的接受者且从Android 2.3.3起也支持P2P通信。

Android对NFC的支持主要在 android.nfc 和 android.nfc.tech 两个包中。

android.nfc 包中主要类如下:

NfcManager 可以用来管理Android设备中指出的所有NFC Adapter,由于大部分Android设备只支持一个NFC的Adapter,可以使用getDefaultAdapter 来获取系统支持的Adapter。

NfcAdapter 本设备的NfcAdapter,可以定义Intent来请求系统检测到的tags的提醒发送到你的Activity,并提供方法注册前台tag提醒发布和前台NDEF推送。前台NDEF推送是当前android 版本唯一支持的p2p  NFC通信方式。

NdefMessage NDEF是NFC论坛定义的数据结构,用来有效的存数据到NFC tag.比如文本,url,和其他MINE类型,一个NdefMessage扮演一个容器,这个容器存哪些发送和读到的数据。一个NdefMessage对象包含0或多个NdefRecord,每个NdefRecord有一个类型,比如文本,url,广告,或其他MINE数据。在NdefMessage里的一NfcRecord的类型来发送tag到一个android设备上的activity。

Tag 表示一个被动的NFC目标,比如tag,card,钥匙挂扣,甚至是一个电话模拟的NFC卡,当一个tag被检测到,一个tag对象将被创建并且封装到一个Intent里,然后NFC发布系统将这个Intent用startActivity发送到注册了接收这种Intent的Activity中,你可以用getTechList()方法来得到这个tag支持的技术细节和创建一个android.nfc.tech提供的TagTechnology对象。

android.nfc.tech包含那些对tag查询属性和进行I/O操作的类。这些类分别标示一个tag支持的不同的NFC技术标准。

Android开发之NFC介绍及应用相关推荐

  1. Android开发之TextView高级应用

    Android开发之TextView高级应用 我们平时使用TextView往往让它作为一个显示文字的容器,但TextView的功能并不局限于此.以下就和大家分享一下TextView的一些使用技巧. A ...

  2. android之json解析优化,Android开发之json解析

    目前正在尝试着写app,发现看懂代码和能写出来差距很大,最关键的是java基础比较的差,因为只会python,java基础只学习了一个礼拜就过了.感觉java写出来的代码不如python简单明了. 上 ...

  3. Android开发之旅:组件生命周期(二)

    引言 应用程序组件有一个生命周期--一开始Android实例化他们响应意图,直到结束实例被销毁.在这期间,他们有时候处于激活状态,有时候处于非激活状态:对于活动,对用户有时候可见,有时候不可见.组件生 ...

  4. Android 开发之Windows环境下Android Studio安装和使用教程(图文详细步骤)

    鉴于谷歌最新推出的Android Studio备受开发者的推崇,所以也跟着体验一下. 一.介绍Android Studio  Android Studio 是一个Android开发环境,基于Intel ...

  5. Android开发之旅:应用程序基础及组件

    --成功属于耐得住寂寞的人,接下来几篇将讲述Android应用程序的原理及术语,可能会比较枯燥.如果能够静下心来看,相信成功将属于你. 引言 为了后面的例子做准备,本篇及接下来几篇将介绍Android ...

  6. Android开发之旅:android架构

    引言 通过前面两篇: Android 开发之旅:环境搭建及HelloWorld Android 开发之旅:HelloWorld项目的目录结构 我 们对android有了个大致的了解,知道如何搭建and ...

  7. Android开发之旅:HelloWorld项目的目录结构

    引言 前面Android开发之旅:环境搭建及HelloWorld,我们介绍了如何搭建Android开发环境及简单地建立一个HelloWorld项目,本篇将通过HelloWorld项目来介绍Androi ...

  8. Android studio实现底部导航,Android 开发之BottomBar+ViewPager+Fragment实现炫酷的底部导航效果...

    BottomBar BottomBar是Github上的一个开源框架,因为从1.3.3开始不支持fragments了,要自己配置,弄了很久,不管是app的fragment还是V4 的程序总是总是闪退. ...

  9. android图标随着进度条动画,Android开发之ProgressBar字体随着进度条的加载而滚动...

    在网上翻阅了很多关于ProgressBar滚动效果,但是始终没有找到适合项目中的这种效果,故自己写这篇文章,记录一下写作过程,给大家做一个参考.先看下最终效果效果图 我这里用的是LICEcap软件录制 ...

最新文章

  1. Sun公司开源游戏服务器Project Darkstar Server——(Sun game server , 简称 sgs)学习笔记(一):sgs简介...
  2. 【tensorboard】从tensorboard上看出模型是否存在过拟合
  3. qml 自定义消息框_Qt qml 自定义消息提示框
  4. hadoop_单元测试Java Hadoop作业
  5. 用 Java 爬小姐姐图片,这个厉害了。。。
  6. 35岁前必做10件事 让你少奋斗8年挣足钱
  7. 《实战突击.php项目开发案例整合》.(明日科技).[PDF]ckook
  8. 频谱分析幅值单位_案例分享丨某水泥厂入窑斗提减速机不对中故障分析及处理...
  9. 一二三系列之CodeChef分块——Chef and Churu,Chef and Problems,Children Trips
  10. mybatis学习(15):mybatis连接mysql数据库
  11. OpenCV:Mat数据类型/16to8bit/RECT/画线填充
  12. 多项目晶圆(MPW)服务
  13. 抄底指标:秘密买卖点
  14. 技术干货|深入理解flannel
  15. [NLP]OpenNLP Maven工程的依赖
  16. 品高工作流 - 基于InfoPath的自定义表单设计教程
  17. 启动、停止和重新启动vcenter服务
  18. Rust :公钥、私钥与keypair、signature、verify 三部曲
  19. DataGraph for Mac v4.3.0 强大的统计分析软件
  20. 无法导入某些项目,因为它们已经存在于Eclipse中的工作区错误中

热门文章

  1. 硬盘缓存(Cache)与NCQ技术
  2. 2018电商线上线下加速融合,双十一助力品牌融入新零售
  3. 南京联通试点电力线上网 家庭用户带宽达到2M
  4. 仿支付宝首页顶部滑动效果
  5. pythonturtle画飞机_如何用 Python 画一个纸飞机?| 原力计划
  6. 基于STM32MP157A的蜂鸣器,马达,震动马达PWM实验
  7. 3D Segmentation with Exponential Logarithmic Loss for Highly Unbalanced Object Sizes
  8. 22年Web3.0的三大前沿议题:NFT、元宇宙和DAO
  9. C里面recipe for target failed报错
  10. uipath出现idx属性操作 快速生成锚点(以浏览器截图为例)