NFC开发入门篇

之前做过一些关于NFC的项目,比如手机羊城通卡芯片的充值,粤通卡的充值(与微信的羊城通充值功能类似),NFC功能是需要硬件的支持的,不过现在越来越多手机支持NFC功能了,所以这里简单的介绍它的开发流程吧。

一、NFC简介

NFC(Near Field Communication)近距离无线通信技术。工作模式分为两种:卡模式(Card emulation)、点对点模式(P2P mode)。这里主要是介绍卡模式的的开发,卡模式的开发又分为机卡通道和非机卡通道两种,机卡通道就是手机卡里面集成了相关的芯片,一卡多用,卡离开手机之后无法工作,比如手机卡里面又附带羊城通的芯片的功能,这样既可以打电话又可以刷公交和地铁。非机卡通道就是卡和手机是分开使用的,就是平常使用单独一张公交卡一样。

二、开发流程

1、非机卡通道模式

(1)在AndroidManifest.xml中声明权限

<uses-permission android:name=”android.permission.NFC” />
<uses-feature android:name=”android.hardware.nfc” android:required=”true” />

(2)在AndroidManifest.xml 中的activity中声明可以处理的NFC Tag。
当手机开启了NFC,并且检测到一个TAG后,TAG分发系统会自动创建一个封装了NFC TAG信息的intent。如果多于一个应用程序能够处理这个intent的话,那么手机就会弹出一个框,让用户选择处理该TAG的Activity。 TAG分发系统定义了3中intent。按优先级从高到低排列为:
NDEF_DISCOVERED, TECH_DISCOVERED,TAG_DISCOVERED
当Android设备检测到有NFC Tag靠近时,会根据Action申明的顺序给对应的Activity 发送含NFC消息的 Intent。在某个Activity中添加以下的代码:
这里写图片描述

(3)编写xml文件。
在res目录下新建xml,编写上面红色框的xml文件:nfc_tech_filter,声明要处理的NFC Tag。
这里写图片描述

(4)测试
打开Android手机的NFC,运行程序,并把羊城通靠近手机背部,这样就可以看到可以处理NFC卡的应用。
这里写图片描述

(5)设置Activity
在onCreate()方法里添加以下代码。

nfcAdapter = NfcAdapter.getDefaultAdapter(this);
pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this,getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
//区分系统版本
sysVersion = Integer.parseInt(VERSION.SDK);
i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值