Android NFC开发(一)——初探NFC,了解当前前沿技术

简介: <div class="markdown_views"><h1 id="android-nfc开发一初探nfc了解当前前沿技术">Android NFC开发(一)——初探NFC,了解当前前沿技术</h1><hr><p>官方文档:<a href="http://developer.android.com/guide/topics/connectivity/nfc/inde

Android NFC开发(一)——初探NFC,了解当前前沿技术


官方文档:http://developer.android.com/guide/topics/connectivity/nfc/index.html

我们根据Google的官方文档来

这里写图片描述

一.什么是NFC

NFC(Near Field Communication 近场通讯),他是当前逐渐火起来的一种技术,在以前,好像还一直不冷不热的样子,现在好像是块要爆发了,所以我们搞Android开发的感觉强撸了一把,随我来学习一下NFC的技术

二.NFC与WIFI,Bluetooth,红外线的差异

这些都是可以做数据传输的,但是差异最大的还是体现在有效距离上了,这里不能超过4CM

三.NFC的工作模式

  • 读卡器模式(Reader/Witer Mode)
  • 仿真卡模式(Card Emulation Mode)
  • 点对点模式(P2P Mode)

四.读卡器模式(Reader/Witer Mode)

我们从某个支持NFC功能的媒介上读取相关数据

五.-仿真卡模式(Card Emulation Mode)

这也是运用比较广泛的,我们可以把手机刷公交,地铁之类的
功能就是这个模式,其原理就是将相应IC卡中的信息(支付凭证)封装成数据包存储起来,使用的时候NFC有个射频器,有设备靠近的时候,就会验证,读写,并且进行相应的处理,比如开门,支付什么的。

六.点对点模式(P2P Mode)

这个模式跟wifi热点有点类似,距离很短,两部设备连接起来可以共享数据,传输速度非常的快,而且如果两部手机都是Android4.2,NFC传输会直接利用蓝牙传输,这种技术称为Android Beam ,所以使用Android Beam传输数据的两部设备不再局限性在4CM内了

7.差异

图片借用了某网站哈

这里写图片描述

8.如何NFC标签被映射到MIME类型和URI

你开始写你的NFC应用之前,必须了解不同类型的NFC标签是很重要的,标签调度系统如何解析NFC标签和特殊的工作,当它检测到NDEF消息的标记调度系统一样。NFC标签来在广泛的技术和还可以有许多不同的方式写入到其中的数据。机器人具有用于NDEF标准

NDEF数据被封装的消息(内部NdefMessage),其中包含一个或多个记录(NdefRecord)。每个NDEF记录必须根据您要创建的记录类型的规格良好的。Android版 ​​还支持其它类型的标签不包含NDEF的数据,您可以通过在使用类的工作android.nfc.tech包。要了解更多有关这些技术,请参阅高级NFC主题。这些其他类型的标签工作包括编写你自己的协议栈与标签进行通信,因此,我们建议使用NDEF在可能的情况,便于开发和最大支持Android的供电设备。

注意: 要下载完整NDEF的规格,请访问NFC论坛规范下载网站,看到 创建常见类型的NDEF记录了如何构建NDEF记录的例子。

现在,你有NFC标签的背景,下面的章节详细描述了Android的如何处理NDEF格式化的标签。当一个Android设备扫描包含NDEF格式的数据的NFC标签,它解析该消息并试图找出数据的MIME类型或标识的URI。要做到这一点,系统读取所述第一NdefRecord内侧NdefMessage以确定如何解释整个NDEF消息(一个NDEF消息可以有多个NDEF记录)。在一个结构良好的NDEF消息,第一NdefRecord 包含以下字段:

3-bit TNF (Type Name Format)

指示如何解释可变长度类型字段

这里写图片描述

Variable length type

描述了记录的类型。如果使用TNF_WELL_KNOWN,使用此字段指定记录类型定义(RTD)

这里写图片描述

Variable length payload

要读取或写入的实际数据的有效载荷。一个NDEF消息可以包含多个NDEF记录,所以不承担全部有效载荷在NDEF消息的第一NDEF纪录。

标签调度系统使用3-bit TNF (Type Name Format)和类型字段来尝试映射MIME类型或URI的NDEF消息。如果成功,它封装了一个内部的信息ACTION_NDEF_DISCOVERED与实际载荷一起意图。不过,也有当标签调度系统不能确定数据的基础上,第一个NDEF记录中的类型的情况。这种情况发生在NDEF数据不能被映射到一个MIME类型或URI,或当NFC标签不包含NDEF数据开始。在这种情况下,一个标签具有关于标签的技术和有效载荷信息对象被封装一个的内部ACTION_TECH_DISCOVERED意图代替。

表1描述了标签调度系统如何TNF和类型字段映射到MIME类型或URI的。它也描述了TNFs不能被映射到一个MIME类型或URI。在这些情况下,标签调度系统回落到 ACTION_TECH_DISCOVERED。

例如,如果标签调度系统遇到类型的记录TNF_ABSOLUTE_URI,它映射该记录成URI的可变长度类型字段。标签调度系统封装该URI在一个数据字段ACTION_NDEF_DISCOVERED意图提供关于标签的其他信息,例如有效载荷沿。在另一方面,如果遇到类型的记录TNF_UNKNOWN,它会创建一个封装标签的技术,而不是意图。

9.如何NFC标签被分派到应用程序

当标签调度系统做创建封装NFC标签和识别信息的意图,它发出的意图,对于意图过滤感兴趣的应用程序。如果有多个应用程序可以处理的意图,提出活动选配,以便用户可以选择的活动。标签调度系统定义了三个意图,这是在最高的顺序列出来最低优先级:

  • ACTION_NDEF_DISCOVERED:此意图是用来启动一个活动时,它包含一个NDEF净荷标签的扫描和是一个公认的类型。这是最高优先级的意图,并且标签调度系统尝试尽可能任何其他意图,之前启动这一意图的活动。

  • ACTION_TECH_DISCOVERED:如果没有活动登记办理

  • ACTION_TAG_DISCOVERED:如果没有活动处理这一意图开始-

  • ACTION_NDEF_DISCOVERED或ACTION_TECH_DISCOVERED 意图。

标签调度系统工作的基本方法如下:

  • 尝试启动与由标签调度系统解析NFC标签(或时创建的意图一个Activity ACTION_NDEF_DISCOVERED或ACTION_TECH_DISCOVERED)。

  • 如果这一意图没有活动过滤器,尝试启动下一个优先级最低的意图(可以是活动ACTION_TECH_DISCOVERED或ACTION_TAG_DISCOVERED),直到意图或直至标签调度系统中的应用程序过滤器尝试所有可能的目的。

  • 如果没有应用程序筛选任何意图的,什么也不做。

这里写图片描述

只要有可能,以NDEF消息和工作ACTION_NDEF_DISCOVERED意图,因为它是最特定出的三个。此意向,您可以在比其他两个意图更适当的时间启动应用程序,给用户更好的体验。

简介先讲到这里,后面就开始实战了,又不懂的可以翻越官方文档:http://developer.android.com/guide/topics/connectivity/nfc/nfc.html

目录
相关文章
|
18天前
|
Java Android开发
Android 开发获取通知栏权限时会出现两个应用图标
Android 开发获取通知栏权限时会出现两个应用图标
12 0
|
1月前
|
XML 缓存 Android开发
Android开发,使用kotlin学习多媒体功能(详细)
Android开发,使用kotlin学习多媒体功能(详细)
91 0
|
2月前
|
Android开发
安卓SO层开发 -- 编译指定平台的SO文件
安卓SO层开发 -- 编译指定平台的SO文件
29 0
|
1月前
|
设计模式 人工智能 开发工具
安卓应用开发:构建未来移动体验
【2月更文挑战第17天】 随着智能手机的普及和移动互联网技术的不断进步,安卓应用开发已成为一个热门领域。本文将深入探讨安卓平台的应用开发流程、关键技术以及未来发展趋势。通过分析安卓系统的架构、开发工具和框架,本文旨在为开发者提供全面的技术指导,帮助他们构建高效、创新的移动应用,以满足不断变化的市场需求。
18 1
|
3月前
|
Android开发 开发者 iOS开发
APP开发后如何上架,上架Android应用市场前要准备什么
移动应用程序(APP)的开发已经成为现代企业和开发者的常见实践。然而,开发一个成功的APP只是第一步,将其上架到应用商店让用户下载和使用是实现其潜力的关键一步。
|
1月前
|
机器学习/深度学习 调度 Android开发
安卓应用开发:打造高效通知管理系统
【2月更文挑战第14天】 在移动操作系统中,通知管理是影响用户体验的关键因素之一。本文将探讨如何在安卓平台上构建一个高效的通知管理系统,包括服务、频道和通知的优化策略。我们将讨论最新的安卓开发工具和技术,以及如何通过这些工具提高通知的可见性和用户互动性,同时确保不会对用户造成干扰。
31 1
|
9天前
|
XML 开发工具 Android开发
构建高效的安卓应用:使用Jetpack Compose优化UI开发
【4月更文挑战第7天】 随着Android开发不断进化,开发者面临着提高应用性能与简化UI构建流程的双重挑战。本文将探讨如何使用Jetpack Compose这一现代UI工具包来优化安卓应用的开发流程,并提升用户界面的流畅性与一致性。通过介绍Jetpack Compose的核心概念、与传统方法的区别以及实际集成步骤,我们旨在提供一种高效且可靠的解决方案,以帮助开发者构建响应迅速且用户体验优良的安卓应用。
|
18天前
|
Android开发
Android开发小技巧:怎样在 textview 前面加上一个小图标。
Android开发小技巧:怎样在 textview 前面加上一个小图标。
10 0
|
18天前
|
Android开发
Android 开发 pickerview 自定义选择器
Android 开发 pickerview 自定义选择器
10 0
|
24天前
|
Java Android开发
Android开发系列全套课程
本系列课程面向有java基础,想进入企业从事android开发的计算机专业者。学习搭配实战案例,高效掌握岗位知识。
16 1