安卓手机APP开发__近距离无线通信(NFC)概述

2024-05-26 00:20

本文主要是介绍安卓手机APP开发__近距离无线通信(NFC)概述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

安卓手机APP开发__近距离无线通信(NFC)概述

概述

近距离无线通信 (NFC) 是一组近距离无线技术,距离通常不超过 4 厘米才能
发起连接。通过 NFC,您可以在 NFC 标签和 Android 设备之间,或两台 Android 设备之间共享较小的数据载荷。

标签的复杂度可能各有不同。简单的标记仅提供读取和写入语义,有时还具有
一次性可编程区域,使卡片变为只读。更复杂的标签可提供数学运算,并具有
加密硬件来对扇区访问进行身份验证。最复杂的代码都包含操作环境,允许与
代码上执行的代码进行复杂的互动。存储在标签中的数据也可以采用多种格式
编写,但许多 Android 框架 API 都基于名为 NDEF(NFC 数据交换格式)的
NFC Forum 标准。

具有 NFC 功能的 Android 设备同时支持三种主要操作模式:

    读取器/写入器模式,允许 NFC 设备读取和写入被动 NFC 标签和贴纸。
    点对点模式,允许 NFC 设备与其他 NFC 对等设备交换数据;Android Beam 使用此操作模式。
    卡模拟模式,允许 NFC 设备本身充当 NFC 卡。然后,可通过外部 NFC
    读取器(例如 NFC 销售终端)访问模拟 NFC 卡。

NFC 基础知识

    将 NDEF 数据与 Android 结合使用时,会有两个主要用例:

    从 NFC 标签读取 NDEF 数据
    使用 Android BeamTM 将 NDEF 消息从一台设备传输到另一台设备

从 NFC 标签读取 NDEF 数据的操作由标签调度系统处理,该系统分析发现的 NFC 标签,对数据进行适当分类,然后启动对分类数据感兴趣的应用。想要处理扫描的 NFC 标签的应用可以声明 intent 过滤器并请求处理数据。

借助 Android BeamTM 功能,设备可以将 NDEF 消息推送到另一台设备,只需将两台设备实际靠在一起即可。与蓝牙等其他无线技术相比,这种互动提供了一种更简便的数据发送方式,因为使用 NFC 时无需手动发现或配对设备。当两部设备接近时,连接会自动开始。Android Beam 通过一组 NFC API 提供,因此任何应用都可以在设备之间传输信息。例如,通讯录、浏览器和 YouTube 应用使用 Android Beam 与其他设备共享联系人、网页和视频。

标签调度系统

Android 设备通常会在屏幕解锁时查找 NFC 标签,除非在设备的“设置”菜单中停用了 NFC 功能。当 Android 设备发现 NFC 标签时,期望的行为是让最合适的 activity 处理 intent,而无需询问用户要使用哪个应用。由于设备在非常短的范围内扫描 NFC 标签,因此让用户手动选择 activity 可能会迫使用户将设备从标签中移除并断开连接。您应将 activity 开发为仅处理 activity 关注的 NFC 标签,以防止 activity 选择器显示。

为了帮助您实现这一目标,Android 提供了一个特殊的标签调度系统,该系统可以分析扫描的 NFC 标签、解析这些标签,并尝试定位对扫描的数据感兴趣的应用。其实现方式如下:

    解析 NFC 标签并确定 MIME 类型或 URI(用于标识标签中的数据载荷)。
    将 MIME 类型或 URI 与负载一起封装到 Intent 中。NFC 标签如何映射到 MIME 类型和 URI 中介绍了前两个步骤。
    根据 Intent 启动 Activity。如何将 NFC 标签分发到应用中介绍了这一点。

如何将 NFC 标签映射到 MIME 类型和 URI

在开始编写 NFC 应用之前,请务必先了解不同类型的 NFC 标签、标签调度系统如何解析 NFC 标签,以及标签调度系统在检测到 NDEF 消息时所做的特殊工作。NFC 标签涉及多种技术,也可以通过多种不同方式将数据写入 NFC 标签。Android 对 NFC Forum 定义的 NDEF 标准的支持最多。

NDEF 数据封装在包含一条或多条记录 (NdefRecord) 的消息 (NdefMessage) 中。每条 NDEF 记录的格式都必须正确,符合您要创建的记录类型的规范。Android 还支持其他类型的不包含 NDEF 数据的标签,您可以使用 android.nfc.tech 软件包中的类来处理这些标签。如需详细了解这些技术,请参阅高级 NFC 主题。在处理这些其他类型的标签时,您需要编写自己的协议堆栈来与这些标签进行通信,因此我们建议您尽可能使用 NDEF,以简化开发并最大限度地支持 Android 设备。


高级 NFC

    本文档将介绍可使用 Android 支持的各种标签技术的 API。如果您不处理 NDEF 数据,或者当您处理 Android 无法完全理解的 NDEF 数据,则必须使用自己的协议堆栈手动读取或写入原始字节中的标签。在这些情况下,Android 支持检测某些标签技术,并使用您自己的协议堆栈开放与标签的通信。

    使用支持的标签技术


处理 NFC 标签和 Android 设备时,用于读取和写入标签数据的主要格式是 NDEF。当设备扫描包含 NDEF 数据的标签时,Android 会尽可能支持解析消息并在 NdefMessage 中传递。不过,在某些情况下,您扫描的标签不包含 NDEF 数据,或者 NDEF 数据无法映射到 MIME 类型或 URI。在这些情况下,您需要直接开启与标签的通信,并使用您自己的协议(以原始字节形式)对其执行读写操作。Android 通过 android.nfc.tech 软件包对这些用例提供一般性支持,如表 1 中所述。您可以使用 getTechList() 方法确定标签支持的技术,并使用 android.nfc.tech 提供的类之一创建相应的 TagTechnology 对象

基于主机的卡模拟

许多提供 NFC 功能的 Android 设备已经支持 NFC 卡模拟。在大多数情况下,卡由设备中的一个单独的芯片(称为安全元件)模拟。无线运营商提供的许多 SIM 卡也包含安全元件。

Android 4.4 及更高版本提供了一种不涉及安全元件的额外卡模拟方法,称为“基于主机的卡模拟”。这样一来,任何 Android 应用都可以模拟卡并直接与 NFC 读取器通信。本主题介绍了基于主机的卡模拟 (HCE) 在 Android 上的工作原理,以及如何开发使用此技术模拟 NFC 卡的应用。
使用安全元件进行卡模拟
使用安全元件提供 NFC 卡模拟时,要模拟的卡会通过 Android 应用配置到设备上的安全元件中。然后,当用户将设备靠近 NFC 终端时,设备中的 NFC 控制器会将来自读取器的所有数据直接路由到安全元件。

这篇关于安卓手机APP开发__近距离无线通信(NFC)概述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1003034

相关文章

你的华为手机升级了吗? 鸿蒙NEXT多连推5.0.123版本变化颇多

《你的华为手机升级了吗?鸿蒙NEXT多连推5.0.123版本变化颇多》现在的手机系统更新可不仅仅是修修补补那么简单了,华为手机的鸿蒙系统最近可是动作频频,给用户们带来了不少惊喜... 为了让用户的使用体验变得很好,华为手机不仅发布了一系列给力的新机,还在操作系统方面进行了疯狂的发力。尤其是近期,不仅鸿蒙O

在 VSCode 中配置 C++ 开发环境的详细教程

《在VSCode中配置C++开发环境的详细教程》本文详细介绍了如何在VisualStudioCode(VSCode)中配置C++开发环境,包括安装必要的工具、配置编译器、设置调试环境等步骤,通... 目录如何在 VSCode 中配置 C++ 开发环境:详细教程1. 什么是 VSCode?2. 安装 VSCo

C#图表开发之Chart详解

《C#图表开发之Chart详解》C#中的Chart控件用于开发图表功能,具有Series和ChartArea两个重要属性,Series属性是SeriesCollection类型,包含多个Series对... 目录OverviChina编程ewSeries类总结OverviewC#中,开发图表功能的控件是Char

鸿蒙开发搭建flutter适配的开发环境

《鸿蒙开发搭建flutter适配的开发环境》文章详细介绍了在Windows系统上如何创建和运行鸿蒙Flutter项目,包括使用flutterdoctor检测环境、创建项目、编译HAP包以及在真机上运... 目录环境搭建创建运行项目打包项目总结环境搭建1.安装 DevEco Studio NEXT IDE

Python开发围棋游戏的实例代码(实现全部功能)

《Python开发围棋游戏的实例代码(实现全部功能)》围棋是一种古老而复杂的策略棋类游戏,起源于中国,已有超过2500年的历史,本文介绍了如何用Python开发一个简单的围棋游戏,实例代码涵盖了游戏的... 目录1. 围棋游戏概述1.1 游戏规则1.2 游戏设计思路2. 环境准备3. 创建棋盘3.1 棋盘类

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof