安卓 nfc开发实例

NFC是近场通讯技术,它能够让两个设备在非常近的距离内进行通讯。在Android设备上,NFC可以用来进行一些非常有趣的交互,例如分享文件、支付等等。在本文中,我们将介绍如何在Android设备上进行NFC开发。

NFC工作模式

在NFC开发之前,首先需要了解一下NFC的工作模式。NFC有三种工作模式,分别是读卡模式、卡模拟器模式和点对点模式。

1. 读卡模式

在读卡模式下,Android设备可以读取NFC标签或智能卡中的数据。这种模式最为常见,例如读取公交卡或门禁卡中的信息。

2. 卡模拟器模式

在卡模拟器模式下,Android设备可以模拟一张智能卡,供其他设备进行读取。例如,利用卡模拟器模式可以将Android设备变成门禁卡。

3. 点对点模式

在点对点模式下,两个支持NFC的设备可以进行通讯,例如两个智能手机进行文件传输。

NFC开发流程

1. 检查设备是否支持NFC

在进行NFC开发之前,我们需要检查一下当前设备是否支持NFC功能,可以通过代码来实现:

```java

NfcAdapter mNfcAdapter = NfcAdapter.getDefaultAdapter(this);

if (mNfcAdapter == null) {

// 当前设备不支持NFC功能

return;

}

```

2. 创建NFC标签检测

在创建NFC标签检测之前,我们需要明确一下两种类型的NFC标签:NDEF格式和非NDEF格式。NDEF格式的标签可以存储一些文本或链接信息,非NDEF格式的标签则不一定支持此种格式。

在检测NFC标签时,需要先创建一个IntentFilter,过滤掉其他不需要的标签,只留下Android设备可以识别的NFC标签。

```java

IntentFilter tagDetected = new IntentFilter(NfcAdapter.ACTION_TECH_DISCOVERED);

tagDetected.addCategory(Intent.CATEGORY_DEFAULT);

String[][] techList = new String[][] { new String[] { NfcA.class.getName() } };

PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);

mNfcAdapter.enableForegroundDispatch(this, pendingIntent, new IntentFilter[] { tagDetected }, techList);

```

3. 处理NFC标签检测结果

当检测到NFC标签时,Android设备会发送一个代表NFC标签检测的Intent,我们需要在代码中捕获这个Intent,并进行相应处理。

```java

@Override

protected void onNewIntent(Intent intent) {

super.onNewIntent(intent);

String action = intent.getAction();

if (NfcAdapter.ACTION_TECH_DISCOVERED.equals(action)) {

Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);

// 处理NFC标签

}

}

```

在处理NFC标签时,我们需要先判断NFC标签的类型,如果是NDEF类型,则可以读取标签中的数据。如果是非NDEF类型,则需要使用ISO 14443-3A或ISO 14443-4A协议来进行读取。

```java

if (tag != null) {

Ndef ndef = Ndef.get(tag);

if (ndef != null) {

try {

ndef.connect();

NdefMessage ndefMessage = ndef.getNdefMessage();

if (ndefMessage != null) {

// 读取标签中的数据

}

} catch (IOException | FormatException e) {

e.printStackTrace();

} finally {

try {

ndef.close();

} catch (IOException e) {

e.printStackTrace();

}

}

} else {

// 使用ISO 14443-3A或ISO 14443-4A协议进行读取

}

}

```

总结

通过上述步骤,我们可以在Android设备上进行NFC开发。NFC是一种非常有趣的交互方式,可以用来进行支付、门禁等等,具有广泛的应用前景。


相关知识:
安卓6
在安卓系统中,开发者模式允许用户使用高级开发选项和功能。如果你需要进行一些调试或开发工作,开启开发者模式可以帮助你更好地完成这些任务。在这篇文章中,我将介绍如何在安卓6.0中开启开发者模式。第一步:寻找“关于手机”在你的安卓设备上,打开“设置”应用程序,滚
2023-05-23
安卓4
Android 4.4.2版本是一款历史悠久的系统,该版本是Android 4.4 KitKat的一个子版本,于2013年发布。Android 4.4.2版本的很多功能和操作方法与现在的系统版本有很大的不同。其中一个常用的功能是开发者模式。在本文中,我们将
2023-05-23
安卓11怎么调出开发者模式
在安卓11手机中,调出开发者模式可以让用户使用一些高级的功能,比如开启USB调试、查看CPU使用情况等等。本文将介绍如何调出安卓11手机的开发者模式。第一步:打开“设置”应用在安卓11手机主界面找到“设置”应用图标,点击进入。也可以向下滑动通知栏,在右上角
2023-05-23
阿里巴巴安卓开发规范考试
阿里巴巴安卓开发规范考试,是一项旨在提升开发人员对于安卓开发标准的了解和遵守程度的考试。该考试基于阿里巴巴安卓开发规范,涵盖了从代码编写、性能优化、架构设计、安全性等多个方面的内容。下面我们来详细介绍一下该考试的原理和相关规范。一、考试原理考试的原理主要是
2023-05-23
qt开发的程序能在安卓运行吗
Qt是一个跨平台的开发框架,可以用于创建各种类型的应用程序,包括桌面应用程序、嵌入式应用程序、Web应用程序等。Qt提供了强大的工具和库,使开发者可以轻松地创建功能强大、易于维护和扩展的应用程序。Qt的跨平台性能非常好,可以支持Windows、Linux、
2023-05-23
idea开发查看类安卓app
IDEA开发查看类安卓App是一种可以帮助开发者进行项目调试和分析的工具。本文将为大家介绍IDEA开发查看类安卓App的原理和详细步骤,帮助大家更好地了解这个工具。1. 原理Android Studio和IDEA是基于Java语言的软件开发工具。IDEA开
2023-05-23
android入门介绍安卓开发
Android是一种开放源代码的移动操作系统,由Google开发和维护。Android系统主要运行在移动设备上,包括智能手机、平板电脑、智能手表、智能电视和其他可穿戴设备等。Android平台提供了开发应用程序所需的一系列API和工具。Android的开发
2023-05-23
开发安卓app用什么框架技术
开发安卓APP可以使用多种框架技术,下面介绍几种常用的技术:1. Android SDKAndroid SDK是一套由Google提供的软件开发工具集,包括了构建Android应用程序的各种工具、库和文档。通过使用Android SDK,开发者可以通过Ja
2023-04-28
广州开发安卓app
在介绍如何开发安卓app之前,我们先来了解一下安卓app的基础知识。安卓系统是当前最流行的移动设备操作系统之一,安卓app是运行在安卓系统上的应用程序。安卓app的开发主要是基于Java编程语言和安卓操作系统的API(应用程序接口)开发的。安卓开发主要采用
2023-04-28
小白开发安卓app用什么软件
对于小白开发者,我强烈推荐使用 Android Studio 来进行 Android 应用开发。以下是对于 Android Studio 的原理和详细介绍。1. 开发平台:Android Studio 是谷歌推出的官方 Android 开发集成开发环境(I
2023-04-28
安卓app开发要学什么
安卓应用开发是创建面向 Android 平台的应用程序的过程。安卓是一种基于 Linux 的开源操作系统,由谷歌及其合作伙伴开发和支持。如果你想学习安卓应用开发,以下是需要了解和学习的一些基本知识和技能。一、基本原理和知识:1. 安卓app开发简介熟悉安卓
2023-04-28
安卓app开发快递查询api调用
快递查询的 API 主要由以下几个部分组成:1. 快递公司编码2. 快递单号3. 快递查询 API 接口地址4. 快递查询 API 的请求方式:GET 或 POST5. 快递查询 API 的返回数据格式:JSON 或 XML以下以顺丰快递为例,介绍如何调用
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1