安卓 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是一种非常有趣的交互方式,可以用来进行支付、门禁等等,具有广泛的应用前景。


相关知识:
miui11安卓10开发版
MIUI是小米公司推出的一款基于Android系统的手机操作系统。而MIUI11是其最新版本,于2019年9月24日正式发布,主打“极光美学”设计理念和全面屏的特性,让用户拥有更加流畅、贴心和美观的手机使用体验。MIUI11安卓10开发版是小米公司在MIU
2023-05-23
java开发安卓软件
Java是一种面向对象的编程语言,被广泛用于开发Android应用程序。Java语言由James Gosling创建于1990年,是由Sun Microsystems公司开发的。由于Java的跨平台性能优秀,易学易用,已成为开发Android应用程序的最佳
2023-05-23
intellij idea开发安卓app
IntelliJ IDEA是一款由JetBrains开发的Java集成开发环境(IDE),是开发Java应用程序的理想选择。它的一个重要功能是能够轻松创建Android应用程序。在本文中,我将介绍IntelliJ IDEA开发安卓应用程序的详细步骤。首先,
2023-05-23
eclipse安卓开发模拟器联网
Eclipse是一款广受欢迎的Java集成开发环境,也是Android开发人员进行应用程序开发的核心开发工具之一。为了更加方便Android开发人员进行应用程序开发和测试,Eclipse内置了一个Android模拟器,方便开发人员进行模拟器调试。模拟器联网
2023-05-23
3安卓开发起步
安卓开发是指开发基于安卓系统的移动应用程序。安卓系统是由谷歌公司进行开发的一种基于Linux内核的开源移动操作系统。因其开源、丰富的API、便于开发等特点,在移动设备操作系统市场上占有很大的份额。下面将介绍安卓开发的基本概念和原理。1. 安卓开发基础知识安
2023-05-23
开发者工具app安卓版
开发者工具是一款针对开发者和程序员设计的应用程序,其主要作用是帮助开发者高效地进行应用程序开发,提高开发效率。它包含了很多实用的工具和功能,比如代码编辑器、调试器、性能监测器等等。在安卓系统中,也有很多开发者工具app,其中最受欢迎的就是Android S
2023-04-28
安卓移动app开发技术
安卓移动App开发技术指的是基于 Android 系统平台进行应用程序开发的相关技术,这些开发技术包含了多种不同的方面,比如 Android 系统的架构设计、应用程序的基础组件、应用程序的开发语言,以及相关的开发工具和环境等等。下面是安卓移动App开发技术
2023-04-28
安卓商城app开发定制
安卓商城app开发定制需要考虑到以下方面:1.设计阶段:在设计阶段,需要考虑到app的整体风格、用户界面UI、交互方式等等。根据商城的主营业务,app需要提供基本功能如商品分类、商品列表、商品详情、订单管理、购物车等,以及用户体验和界面设计等。2.后台架构
2023-04-28
安卓app开发制作工具
Android 应用程序开发通常使用 Java 语言。Java 语言是一种面向对象语言,广泛用于互联网应用程序开发。Android 不仅支持 Java 总体语言,还支持 Java 的核心库。结合 Google 提供的 Android SDK(软件开发工具包
2023-04-28
安卓app开发为什么接入实机
欢迎来到我的博客!今天,我将带您了解为什么在Android App开发中需要接入实体设备(也称为实体机或实机),这对于初学者来说是一个很重要的概念。我们先了解一下实机接入的定义,然后详细介绍其原理和优势。**实机接入**是指将Android应用程序安装和运
2023-04-28
安卓 游戏app开发
安卓游戏App开发:原理与详细介绍作为一名互联网领域的博主,我将为你详细介绍安卓游戏App开发的基础知识和相关原理。安卓游戏App开发指的是为安卓操作系统上的移动设备创建游戏应用程序。不同于常规的App开发,游戏App开发涉及更多的技术和设计元素,包括动画
2023-04-28
东莞安卓商城app开发需要多少钱
东莞安卓商城App开发费用的计算并不是一个简单固定的数字,它的成本取决于许多因素,例如功能需求、设计风格、开发周期、开发团队等。下面我将为您详细介绍一下影响安卓商城App开发费用的主要因素:1. 功能需求:根据您的业务需求和目标用户,App功能的复杂程度会
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1