Android NFC开发(二)——Android世界里的NFC所具备的条件以及使用方法


NFC的应用比较广泛,而且知识面也是比较广的,所以就多啰嗦了几句,我还还是得跟着官方文档:http://developer.android.com/guide/topics/connectivity/nfc/index.html来,看这篇的同学可以先大概的了解一下Android NFC开发(一)——初探NFC,了解当前前沿技术

1.Android NFC的历史

真要说起来,NFC在Android上,也是从API9才开始支持的,但是到了API14 Google才对NFC大力开发,所以等到了API15的时候,NFC的传输速度就得到了很大的加强

2.NFC 标签

如果你有支持NFC的手机,你打开后盖,你看看到一块薄薄的东西,这就是NFC标,标签的种类也是种类繁多,功能野人参参不齐,有的只能读写,有的却能上天,而在Android SDK 中定义的NFC标准被称为NDEF(数据交换格式)

3.NDEF数据

Android SDK中有三种NDEF数据的操作

  • 从NFC便签读取NDEF格式的数据
  • 向NFC标签写入NDEF格式的数据
  • 通过Android Beam技术将NDEF数据发送到另一部NFC设备

4.非NDEF数据

上篇也简单的说了这个机制

不管原生的如何支持,就像Android一样,依旧有一个独特的要求,比如我们存储的数据需要任意的,这就要我们自己定义数据,这也叫做非NDEF数据,这些数据其实就是普通的字节流罢了

5.NFC的三重过滤机制

两个终端设备要想读写数据,会有个短暂配对的时间,数据接收端会根据具体的数据格式和标签类型调用相应的Activity(Tag Dispatch),这个activity需要定义一个intent filter中指定不同的过滤机制,分三个等级,所以叫NFC的三重过滤机制

  • NDEF_DISCOVERED

    只过滤固定格式的NDEF数据,比如纯文本,指定协议(HTTP FTP SMB等)的URI

  • TECH_DISCOVERED

    当ACTION_NDEF_DISCOVERED指定的过滤机制无法匹配Tag时,就会使用这种过滤机制进行匹配,这种过滤机制并不是通过Tag的数据进行匹配的,而是根据Tag支持的数据存储格式进行匹配,因此这种机制使用范围很广

  • TAG_DISCOVERED

    如果将NFC的过滤机制看成if….else…if….语句的话,那么这种机制相当于else语句,前面两种都失败了之后,就会用这个来处理了,这种机制用来处理未识别的Tag

从这里不难看出,NFC的三重过滤机制,如果都不能匹配Tag,则什么都不做,这里有个图,实际上上篇结尾的时候我也提到过,只是没讲这么细

5.Android中使用NFC

这里指定一个实例

Tag要调用的一个activity,而且指定机制和数据类型

6.NFC 权限

 <uses-permission android:name="android.permission.NFC" />

7.最小支持SDK

ndroid:minSdkVersion="14"

8.限制安装的设备

<uses-feature
        android:name="android.hardware.nfc"
        android:required="true" />

当我们了解了这些基本的知识之后,我们就可以编写NFC的软件了,准备一部有NFC功能的手机,然后等待我们的下一篇

Android NFC开发(二)——Android世界里的NFC所具备的条件以及使用方法的更多相关文章

  1. 玩转Android Camera开发(二):使用TextureView和SurfaceTexture预览Camera 基础拍照demo

    Google自Android4.0出了TextureView,为什么推出呢?就是为了弥补Surfaceview的不足,另外一方面也是为了平衡GlSurfaceView,当然这是本人揣度的.关于Text ...

  2. C#-Xamarin的Android项目开发(二)——控件应用

    相信我,这不是一篇吐槽文章.... 基础控件 Android的控件和控件样式非常特别,它是一种内联特别高的设计模式,换句话说,它是非常烂的设计.... 但在这种特别的关系里还是有一定的规律的,下面我们 ...

  3. 如何使用Android Studio开发/调试Android源码

    本文是以源码中development/tools/idegen/README作为指导文档. 环境: Ubuntu 14.10,openJdk 1.7,Android Studio 1.0.2,andr ...

  4. 【Android 应用开发】Android 开发环境下载地址 -- 百度网盘 adt-bundle android-studio sdk adt 下载

    19af543b068bdb7f27787c2bc69aba7f Additional Download (32-, 64-bit) Package r10 STL debug info androi ...

  5. 【Android 应用开发】Android 开发 之 JNI入门 - NDK从入门到精通

    NDK项目源码地址 : -- 第一个JNI示例程序下载 : GitHub - https://github.com/han1202012/NDKHelloworld.git -- Java传递参数给C ...

  6. 简单的调用OpenCV库的Android NDK开发 工具Android Studio

    前言 本博客写于2017/08/11, 博主非专业搞安卓开发, 只是工作的需要倒腾了下Android NDK相关的开发, 博文中有什么不正确.不严格的地方欢迎指正哈    本文后续也许还会有删改, 就 ...

  7. 【Android应用开发】Android 蓝牙低功耗 (BLE) ( 第一篇 . 概述 . 蓝牙低功耗文档 翻译)

    转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/50515359 参考 :  -- 官方文档 : https://develope ...

  8. 【Android应用开发】Android Studio 错误集锦 -- 将所有的 AS 错误集合到本文

    . 一. 编译错误 1. "AndroidManifest.xml file not found" 错误 (1) 报错信息 报错信息 : -- Message Make : Inf ...

  9. 【Android应用开发】Android Studio 简介 (Android Studio Overview)

    一. Intelij IDEA 环境简介 Android Studio 来源 : Android Studio 是 Intelij IDEA 的免费版本 + Android SDK 集成的; -- I ...

随机推荐

  1. 源码篇——AsyncTask机制

    AsyncTask new AsyncTask<String,String,String>(){ // 运行在主线程中,做预备工作 onPreExecute(){ } // 运行在子线程中 ...

  2. 源码推荐:移动端商城(微信小程序源代码) WebView离线缓存

    移动端商城(微信小程序源代码)(上传者:腾讯攻城师jack) 功能包括:商品橱窗,商品搜索,购物车,结账等功能. TableView嵌套webView自适应高度(上传者:linlinchen) tab ...

  3. python 如何优雅地退出子进程

    python 如何优雅地退出子进程 主进程产生子进程,子进程进入永久循环模式.当主进程要求子进程退出时,如何能安全地退出子进程呢? 参考一些代码,我写了这个例子.运行之后,用kill pid试试.pi ...

  4. T-SQL动态查询(4)——动态SQL

    接上文:T-SQL动态查询(3)--静态SQL 前言: 前面说了很多关于动态查询的内容,本文将介绍使用动态SQL解决动态查询的一些方法. 为什么使用动态SQL: 在很多项目中,动态SQL被广泛使用甚至 ...

  5. JAVA面向对象-----接口的概述

    接口的概述 **接口(interface):**usb接口,主要是使用来拓展笔记本的功能,那么在java中的接口主要是使用来拓展定义类的功能,可以弥补java中单继承的缺点. class Pencil ...

  6. Android WebView选择本地文件上传

    This sample demonstrate android webview choose file to upload. I just implement the client code ,the ...

  7. 为何不能在viewDidLoad方法中显示其他视图

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 你可以使得当视图控制器(view controller)显示自 ...

  8. UNIX网络编程——利用ARP和ICMP协议解释ping命令

    一.MTU 以太网和IEEE 802.3对数据帧的长度都有限制,其最大值分别是1500和1492字节,将这个限制称作最大传输单元(MTU,Maximum Transmission Unit)      ...

  9. UNIX网络编程——TCP带外数据小结

    带外数据概念实际上时向接收端传送三个不同的信息:(1)发送端进入紧急模式这个事实.接收进程得以通知这个事实的手段不外乎SIGURG信号或select调用.本通知在发送进程发送带外字节后由发送端TCP立 ...

  10. J2EE Exception:WELD-001408 Unsatisfied dependencies for type [SelectModelFactory] with qualifiers [@

    Issue: When you inject some resources using @Inject, you may encounter following exception after app ...