说道NFC,是Near Field Communication缩写,就是近距离无线通讯技术。NFC采用主动和被动两种通信模式,工作的模式有三种,读写标签,点对点,仿真卡模式,今天我们只是简单的介绍一下读写标签(因为我已经废了一张公交卡了。。。。 大家在学习的时候可以去某宝买几张NFC标签贴纸。。),好了下面开始开始介绍。

1.Android中处理NFC重要的两个包 android.nfc 和 android.nfc.tech。

2.Android SDK API支持下面3种NDEF数据的操作:

(1)从NFC标签读取NDEF格式的数据。

(2)向NFC标签写入NDEF格式的数据。

(3)通过Android Beam技术将NDEF数据发送到另一部NFC设备。

android.nfc下面用到的类也是我们需要使用的:

(1)NdefMessage:描述NDEF格式的信息,实际上我们写入NFC标签的就是NdefMessage对象,所以我们可以理解为数据对象这样就简单多了。

(2)NdefRecord:描述NDEF信息的一个信息段,一个NdefMessage可能包含一个或者多个NdefRecord,也就是对象中的一个个属性。

(3)Tag:表示一个被动的NFC的目标,tag对象将被创建并且封装到一个Intent里,然后NFC 发布系统将这个Intent用startActivity发送到注册了接受这种Intent的activity里。简单来说就是比如现在使用的公交卡,电梯卡,就是这个Tag,里面封装了一个tag对象,当注册了

(4)NfcAdapter : 表示本地设备的NFC adapter,可以定义Intent来请求将系统检测到tags的提醒发送到你的Activity.并提供方法去注册前台tag提醒发布和前台NDEF推送。

(5)NfcManager:NFC adapter的管理器,列出所有本地Android设备支持所有的NFC adapter.

但是大部分Android 设备只有一个NFC adapter。

对了在这里说下Android api版本的区别

1.API level 9以前不支持NFC,当然现在市面上的系统基本上都是4.0以上,低版本的就暂时不考虑了。

2.在API level 10实现对tag的广泛的读写支持。

好了现在开始上代码以及解释。首先我们使用android studio开始一个工程,在AndroidManifest清单文件里面设置项目权限nfc,要求当前设备必须要有NFC芯片

     定义一个基础的接收nfc tag的activity,类似我们在项目中的基础baseActivity,通常来说为了让我们的设备在靠近nfc标签的时候,能够让我们的界面Activity调用起来,所以清单需要配置一下activity的 launchMode属性为singletop,子类需要在onCreate方法中做Activity初始化,子类需要在onNewIntent方法中进行NFC标签相关操作。当launchMode设置为singleTop时,第一次运行调用onCreate方法,第二次运行将不会创建新的Activity实例,将调用onNewIntent方法所以我们获取intent传递过来的tag数据操作放在onNewIntent方法中执行,如果在栈中已经有该Activity的实例,就重用该实例(会调用实例的onNewIntent())。下面是Activity,在界面onCreate的时候获取支持的nfcadapter,同时截获NFC消息,通过PendingIntent调用窗口。

        界面onResume和onPause的时候让设备处理当前NFC数据优先于其他的NFC处理。

重写OnnewIntent方法,进行NFC标签的操作

我在学习的过程中做了一个选择手机里的应用写入标签的应用,运行如下图:

       

Android NFC基础入门相关推荐

  1. android 自动补全方法,Android零基础入门|自动完成文本框AutoCompleteTextView

    原标题:Android零基础入门|自动完成文本框AutoCompleteTextView 上一期学习的Spinner的使用,掌握的怎么样?本期一起来学习AutoCompleteTextView的使用. ...

  2. android 表格控件点击事件,Android零基础入门|RecyclerView点击事件处理

    原标题:Android零基础入门|RecyclerView点击事件处理 前面两期学习了RecyclerView的简单使用,并为其item添加了分割线.在实际运用中,无论是List还是Grid效果,基本 ...

  3. Android Studio 基础入门笔记

    Android Studio 基础入门笔记 Android Studio 基础入门笔记 为什么选择使用 Android Studio 而不是EclipseADT 安卓配置JDK AS如何更新 常规的 ...

  4. android生命周期方法,Android零基础入门|Activity状态和生命周期方法

    原标题:Android零基础入门|Activity状态和生命周期方法 前面两期我们学习了Activity的创建和注册.以及启动和关闭,也学会了重写onCraete方法,这些知识在实际开发中远远不够,还 ...

  5. android arrayadapter自定义,Android零基础入门|自定义ArrayAdapter

    原标题:Android零基础入门|自定义ArrayAdapter ListView用起来还是比较简单的,也是Android应用程序中最重要的一个组件,但其他ListView可以随你所愿,能够完成很多想 ...

  6. android 搜索框组件,Android零基础入门|搜索框组件SearchView

    原标题:Android零基础入门|搜索框组件SearchView 一.SearchView概述 SearchView是搜索框组件,它可以让用户在文本框内输入文字,并允许通过监听器监控用户输入,当用户输 ...

  7. 【全套】Android零基础入门教程(知识精讲+强化实战)

    在目前的IT行业中,Android开发相关的人才需求量依旧不减,尤其是高级的Android架构师是非常吃香的. 关于安卓如何学习,如何get正确的学习姿势?这篇文章主要分享的是安卓开发的基础内容和学习 ...

  8. Android零基础入门

    往期总结分享: Android零基础入门第1节:Android的前世今生 Android零基础入门第2节:Android 系统架构和应用组件那些事 Android零基础入门第3节:带你一起来聊一聊An ...

  9. Android NFC基础

    基础知识 NFC协议 近场通信称为NFC.该技术类似于RFID标准.我们知道RF天线周围有两种类型的场.近场和远场.近场指的是靠近天线的电磁辐射(即达到2D 2 /λ的区域),远场指的是远离天线的EM ...

最新文章

  1. 使用正则表达式进行高效的测试
  2. 解决Subquery returns more than 1 rowsql查询错误
  3. CodeForces - 760E Nikita and stack
  4. Python自动生成10000个java类使用APT注解后引发的问题
  5. 计算机应用技术的创新
  6. linux调整网页视频声音,网络学员面试常见问题请你修改一下LINUX的视频驱动和声音.DOC...
  7. Jsp+Ssm+Mysql实现的在线宠物商城系统
  8. 在CentOS下搭建自己的Git服务器
  9. html中offsetTop、clientTop、scrollTop、offsetTop
  10. java实现微信支付
  11. windows。forms.timer设置第一次不等待_混凝土密封固化剂个人简易施工方案(不打磨)...
  12. php学习的一些笔记
  13. phpexcel如何预览数据_可变数据之流水号数据的批量制作与打印
  14. Golang(3)CentOS7系统安装Go语言
  15. c++ Beep函数的雪之梦
  16. 03-KVM虚拟磁盘格式及快照
  17. 屏幕绘画 V1.1 - 一念(VB 绘制 图形)
  18. 十进制转32位二进制(Java)
  19. Android SDKManger 更新设置
  20. Vue 之 移动端 better-scroll 下 click 事件失效问题(PC端却正常click点击)

热门文章

  1. flex布局,构建一个响应式的后台网站
  2. IContact接口对应的字段意思
  3. Elaticsearch force merge操作
  4. mimikatz工具使用
  5. 键盘弹钢琴软件测试,评测近两个月,轻松在家弹钢琴,这款智能钢琴60岁都能弹...
  6. 最小二乘估计矩阵形式的推导
  7. 做事很乱没有条理性,如何让自己做事更有条理?
  8. 网吧会员计费管理系统-javaweb
  9. python 寻找重复的数
  10. 2011-3-8用友.net笔试面试