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


相关知识:
安卓8
Android 8.0是谷歌同步发布的一款新版本Android系统,对于开发者而言,它提供了一个相当重要的功能——开发人员选项。在本文中,我们将深入探讨Android 8.0中的开发者选项的原理和详细介绍。一、开发者选项的作用Android操作系统是开源的
2023-05-23
安卓 开发 入门
安卓开发指的是在安卓操作系统上开发应用程序。安卓操作系统是一种基于Linux内核的开放性、免费的移动设备操作系统,已经成为目前世界上使用最广泛的移动设备操作系统。开发安卓应用程序需要了解Java编程语言和Android SDK(Software Devel
2023-05-23
k20pro安卓9开发版
K20 Pro是一款全新的智能手机,它是小米旗下的一款高端手机。K20 Pro安卓9开发版是一种在K20 Pro上运行的安卓系统的开发版本,用于帮助开发人员在手机上进行新功能的开发和调试。K20 Pro安卓9开发版中最重要的特点之一是它的操作系统核心为An
2023-05-23
c++开发安卓教程
C++是一门被广泛应用的编程语言,而安卓开发平台则是当前最为流行的移动端操作系统之一。为了方便C++开发者能够在安卓上进行应用开发,谷歌公司提供了一个名为NDK(Native Development Kit)的工具集,它可以用来将C++开发的代码编译成可以
2023-05-23
西安安卓app开发价格表
西安安卓APP开发价格表主要根据开发的功能复杂程度、UI设计、项目周期以及技术难度等因素来决定。这里将为您简要介绍西安安卓APP开发的一般价格区间,并详细说明各类安卓APP开发的原理。一、西安安卓APP开发价格区间1. 简单型安卓APP: 5000-150
2023-04-28
简单开发安卓app
在本文中,我们将简略地了解如何开发一个简单的Android应用程序。我们将概述应用程序的原理以及开发的步骤。原理:Android是一种基于Linux的开放源代码操作系统,用于移动设备,如智能手机和平板电脑。Android应用程序是使用Java(Kotlin
2023-04-28
安卓我爱记单词app开发源代码
安卓我爱记单词app的开发源代码需要涉及以下几个方面的知识和技能:1. Java 编程语言:安卓开发主要使用 Java 语言进行编程,需要掌握 Java 语言的基本语法和面向对象编程的概念。2. Android SDK:这是安卓开发的重要工具集,它包含了安
2023-04-28
安卓app和苹果app开发区别
安卓和苹果(iOS)应用开发存在很多区别,涉及工具、编程语言、用户界面和开发流程等多个方面。让我们详细探讨这两类应用开发之间的差异。1. 编程语言:对于 Android 应用开发,主要使用的编程语言是 Java 和 Kotlin。Java 是 Androi
2023-04-28
安卓app制作网站
制作安卓app的网站可以分为两种类型:一种是提供制作工具的网站,另一种是提供开发资料和教程的网站。提供制作工具的网站,如APP制作宝、易企秀、APP宝等。这些网站提供了不同的制作工具,用户可以通过在线编辑界面来创建其自己的安卓应用程序。这类网站的原理是先让
2023-04-28
如何制作一个网页的安卓app
制作一个网页的安卓App有两种方式:使用WebView或通过混合开发方式进行制作。1.使用WebView在安卓开发中,WebView是一个能够在应用程序中嵌入网页的控件,而且很容易使用。所以,我们可以使用WebView来制作一个网页的安卓App。步骤如下:
2023-04-28
厦门安卓app开发方案
厦门安卓App开发方案指的是在厦门地区开发安卓应用的策略、原理和详细方案。在这篇文章中,我将从以下几个方面来阐述厦门安卓App开发的原理和详细介绍:1. 安卓开发环境的搭建在开始安卓App开发前,首先需要搭建好开发环境。通常,我们需要进行以下步骤:- 下载
2023-04-28
android安卓app开发
Android是最受欢迎的移动操作系统之一,它支持多种设备、多种屏幕大小和多个平台。Android应用程序可以使用Java编写,并使用Android SDK提供的各种API和库。Android应用程序可以使用以下组件构建:1. 活动(Activity):可
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1