Android系统NFC开发进阶指南118


近场通信(NFC)是一种短距离无线通信技术,可以实现设备之间的非接触式数据交换。Android系统内置了NFC功能,开发者可以利用Android API在应用程序中集成NFC功能,实现各种交互和自动化场景。## NFC 开发基础


初始化
NFC开发的第一步是初始化NFC模块:
```java
NfcManager nfcManager = (NfcManager) getSystemService(Context.NFC_SERVICE);
NfcAdapter nfcAdapter = ();
```


监听 NFC 事件
当设备靠近NFC标签或另一台支持NFC的设备时,可以使用PendingIntent监听事件:
```java
Intent intent = new Intent(this, );
PendingIntent pendingIntent = (this, 0, intent, 0);
(this, pendingIntent, null, null);
```


处理 NFC 意图
在MainActivity中,可以处理NFC事件并获取标签数据:
```java
@Override
protected void onNewIntent(Intent intent) {
if ((())) {
Parcelable[] rawMsgs = (NfcAdapter.EXTRA_NDEF_MESSAGES);
NdefMessage[] msgs = null;
if (rawMsgs != null) {
msgs = new NdefMessage[];
for (int i = 0; i < ; i++) {
msgs[i] = (NdefMessage) rawMsgs[i];
}
}
// 处理 NFC 标签数据
}
}
```
## 读写 NFC 标签


读取 NFC 标签
可以使用NDEF API读取NFC标签的数据:
```java
NdefMessage message = new NdefMessage(new NdefRecord[] { new NdefRecord(NdefRecord.TNF_MIME_MEDIA, "text/plain".getBytes(), null, "Hello, NFC!".getBytes()) });
(message, this);
```


写入 NFC 标签
可以使用NDEF API向NFC标签写入数据:
```java
NdefRecord record = new NdefRecord(NdefRecord.TNF_WELL_KNOWN, NdefRecord.RTD_URI, null, "".getBytes());
NdefMessage message = new NdefMessage(new NdefRecord[] { record });
(message, this);
```
## 高级 NFC 应用


P2P 通信
Android系统支持NFC P2P通信,可以实现两台设备之间的直接数据交换:
```java
(new NdefPushMessageCallback() {
@Override
public void onNdefPushCompleted(NdefMessage message, NdefPushTarget device) {
// 处理 P2P 数据发送成功
}
}, this);
```


卡模拟
Android系统可以模拟NFC卡,实现非接触式支付或其他身份验证场景:
```java
Intent serviceIntent = new Intent(this, );
(HceService.ACTION_START_FOREGROUND_SERVICE);
startService(serviceIntent);
```
## 常见问题


NFC 无法正常工作
* 检查设备是否支持NFC功能
* 确保NFC模块已启用
* 尝试重新启动设备


无法读取/写入 NFC 标签
* 确保NFC标签支持所需的数据格式
* 检查NFC标签是否已写保护
* 尝试使用其他NFC读取/写入应用程序


P2P 通信失败
* 确保两台设备都支持NFC P2P通信
* 检查设备是否处于P2P模式
* 尝试将设备靠近一点

2024-12-12


上一篇:macOS 上一代:探索其卓越的演变

下一篇:鸿蒙系统与科大讯飞的协同创新,推动操作系统发展

新文章
Android 系统架构深度剖析:从Linux内核到应用框架的高清视角
Android 系统架构深度剖析:从Linux内核到应用框架的高清视角
3分钟前
微软Windows操作系统:从Shell到SaaS的演进史诗
微软Windows操作系统:从Shell到SaaS的演进史诗
9分钟前
华为鸿蒙分布式协同:揭秘多设备互联互通与同屏流转的底层技术
华为鸿蒙分布式协同:揭秘多设备互联互通与同屏流转的底层技术
18分钟前
深度解析:iPad运行Windows系统的技术路径与挑战——从虚拟化到云桌面
深度解析:iPad运行Windows系统的技术路径与挑战——从虚拟化到云桌面
24分钟前
鸿蒙系统流畅度深度解析:从底层架构到用户感知的专业测评
鸿蒙系统流畅度深度解析:从底层架构到用户感知的专业测评
29分钟前
iOS系统深度解析:从核心原理到应用交互的专业视角
iOS系统深度解析:从核心原理到应用交互的专业视角
37分钟前
Android应用系统权限:从沙箱机制到运行时控制的深度解析与最佳实践
Android应用系统权限:从沙箱机制到运行时控制的深度解析与最佳实践
41分钟前
iOS生态系统与流行病学数据管理:深度剖析其在移动数据采集及后端集成中的作用
iOS生态系统与流行病学数据管理:深度剖析其在移动数据采集及后端集成中的作用
46分钟前
精通iOS系统:从核心原理到应用开发,专业选课策略全解析
精通iOS系统:从核心原理到应用开发,专业选课策略全解析
50分钟前
Windows操作系统标志的演进:从像素到流体设计的品牌与用户体验之旅
Windows操作系统标志的演进:从像素到流体设计的品牌与用户体验之旅
1小时前
热门文章
iOS 系统的局限性
iOS 系统的局限性
12-24 19:45
Linux USB 设备文件系统
Linux USB 设备文件系统
11-19 00:26
Mac OS 9:革命性操作系统的深度剖析
Mac OS 9:革命性操作系统的深度剖析
11-05 18:10
华为鸿蒙操作系统:业界领先的分布式操作系统
华为鸿蒙操作系统:业界领先的分布式操作系统
11-06 11:48
**三星 One UI 与华为 HarmonyOS 操作系统:详尽对比**
**三星 One UI 与华为 HarmonyOS 操作系统:详尽对比**
10-29 23:20
macOS 直接安装新系统,保留原有数据
macOS 直接安装新系统,保留原有数据
12-08 09:14
Windows系统精简指南:优化性能和提高效率
Windows系统精简指南:优化性能和提高效率
12-07 05:07
macOS 系统语言更改指南 [专家详解]
macOS 系统语言更改指南 [专家详解]
11-04 06:28
iOS 操作系统:移动领域的先驱
iOS 操作系统:移动领域的先驱
10-18 12:37
华为鸿蒙系统:全面赋能多场景智慧体验
华为鸿蒙系统:全面赋能多场景智慧体验
10-17 22:49