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


相关知识:
oppor1c基于安卓4
oppo r1c是oppo智能手机系列的一部分,在2015年上市销售。该手机是基于安卓4.4操作系统开发的,并采用了最新的处理器和芯片组。在这篇文章中我们将详细介绍oppo r1c的基于安卓4.4的开发原理。首先,了解安卓操作系统。安卓操作系统是一种开源的
2023-05-23
odoo与安卓开发
Odoo是一款功能强大的企业资源计划软件(ERP),它可以在管理企业各种业务流程方面提供全面的解决方案。而安卓开发是指利用Java语言和Android SDK来开发手机应用程序。本文将从原理和详细介绍两个方面来阐述Odoo与安卓开发的关系。一、原理Odoo
2023-05-23
java语言和c语言开发安卓app
Android操作系统是目前移动设备上应用最为广泛的操作系统之一,而Java语言和C语言也是开发Android应用程序的两种主流语言。本文将介绍这两种语言在开发Android应用程序中的应用和原理。一、Java语言Java语言是一种跨平台的高级编程语言,被
2023-05-23
java开发安卓方向转后端行吗
Java开发安卓与后端开发是两种不同的技术方向,但是它们之间有很多共通之处,所以从安卓开发方向转向后端开发是完全可行的。首先,Java语言是安卓开发和后端开发都必须掌握的重要语言之一。安卓开发中使用的是Java SE基础部分和Android SDK部分;而
2023-05-23
java安卓开发问题汇总
Java安卓开发是移动应用开发中最流行的一种技术,也是目前市场上最稳定的技术之一。而Java安卓开发的成熟也为移动应用开发提供了更高的效率和可靠性。但是在Java安卓开发的过程中会遇到许多问题,在这里我将对一些常见的问题进行汇总,并且解释它们的原理和详细的
2023-05-23
eclipse安卓开发怎么插入图片
在Eclipse开发Android应用时,经常需要在界面中添加一些图片。在此教程中,我们将讨论如何在Eclipse中插入图片。插入图片的步骤是一样的,不管是在一个普通的Java项目中,还是在一个Android项目中。首先,我们需要将图片文件添加到我们的项目
2023-05-23
青岛安卓app开发建设公司
青岛安卓app开发建设公司是一家专注于安卓(Android)应用开发的公司。安卓是一种基于Linux的开源操作系统,现在已经成为了全球移动设备操作系统的主流之一,其应用程序(App)数量也迅速增长。为了满足用户对各种各样的功能需求,需要有专业的公司为用户开
2023-04-28
常用安卓app开发工具
在安卓app开发中,有很多实用的工具可以帮助开发者更高效地完成工作。以下是一些常用的安卓app开发工具,以及它们的原理或详细介绍。1. Android StudioAndroid Studio是谷歌官方推出的开发安卓应用的集成开发环境(IDE),它基于In
2023-04-28
安卓打包app工具
安卓打包工具是帮助开发者打包安卓应用程序的一种工具。打包后的应用程序可以直接安装在安卓设备上,并且可以进行发布和分享。安卓应用程序开发过程中,需要用到安卓开发工具(Android Studio)进行开发,然后将开发好的程序包(APK)进行打包。打包过程主要
2023-04-28
安卓手机如何开发app
安卓手机APP开发是一个涉及到多方面知识的过程,包括编程语言、开发环境、设计模式等。下面将为您详细介绍安卓手机APP开发的原理和关键步骤。一、安卓手机APP开发原理安卓手机APP开发首先需要了解安卓操作系统的基本原理。安卓(Android)系统是基于Lin
2023-04-28
安卓开发账本app源码
安卓开发账本App涉及到一系列的技术栈如Java/Kotlin, XML, SQLite等。在这里,我将介绍一下这个App的原理和核心功能。一、账本App的原理和核心功能1. 记录收入和支出的详细信息2. 显示各类收支的统计数据3. 依据时间和/或其他条件
2023-04-28
安卓app开发的参考文献
以下是一些安卓app开发的参考文献,涵盖了一些原理和详细介绍:1. 《第一行代码:Android》(郭霖著):本书是一本从零开始学习安卓开发的入门书籍,分享设计并实现简单的安卓应用程序的基础知识,以及许多工具和技巧的使用。2. 《Android移动开发从入
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1