NFC是一种近距离通信技术,通常只在几厘米内有效。它能很方便的集成在手机中,未来,NFC很可能会替代当前的各种磁卡,实现“刷手机”。
Android NFC 的使用场景,1.替代二维码实现信息的传递,价格便宜的NFC标签可以代替二维码储存各种信息,手机只要一贴就能识别,与二维码相比,识别更快,信息量更大。
2.替代磁卡实现身份认证,消费
3.互传信息,与蓝牙类似
下面写一个NFC的测试使用教程:
1.准备工作
你需要有一个支持NFC功能的手机,手机是否支持NFC功能,一般在系统设置菜单中就能找到,打开NFC。一个或几个NFC标签,下载一个检测NFC标签基本信息的软件,这里我使用的是 NFC玩家 。
我使用了两个标签,
标签类型:Mifare Ultralight
TechList: android.nfc.tech.NfcA
android.nfc.tech.Ndef
android.nfc.tech.NdefFormatable
android.nfc.tech.MifareUltralight
标签类型:Mifare Ultralight
TechList: android.nfc.tech.NfcA
android.nfc.tech.Ndef
android.nfc.tech.MifareUltralight
2.首先要在AndroidManifest.xml中声明如下配置信息:
使用<uses-permission>元素允许设备访问NFC硬件:
<uses-permission android:name="android.permission.NFC" />
3.使用<uses-sdk>元素设置最小SDK版本
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="19" />
4.NFC的发布原理:
当系统检测到有NFC标签靠近时,会发出一个intent,需要处理标签的程序在Activity的过滤器中声明该意图,就能捕获意图,自动启动相应的Activity,执行相应的命令。下面配置意图过滤器:
首先创建一个XML文件,在res/xml下:
文件内容:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<tech-list>
<tech>android.nfc.tech.NfcA</tech>
<tech>android.nfc.tech.Ndef</tech>
<tech>android.nfc.tech.NdefFormatable</tech>
<tech>android.nfc.tech.MifareUltralight</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.NfcA</tech>
<tech>android.nfc.tech.Ndef</tech>
<tech>android.nfc.tech.MifareUltralight</tech>
</tech-list>
</resources>
每个 <tech-list>匹配一个合适的标签,这里我把两个标签都写上,是or的意思,即可匹配两个中的任意一个标签。
文件名称可以自定义,我的叫tag_type.
然后
在你的 AndroidManifest.xml 文件, 指定你刚刚创建的资源文件的位置。 在<activity> 节点的 <meta-data> 节点下 ,下面是演示:
<activity
android:name="com.fei.nfcdemo.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED"/>
</intent-filter>
<meta-data android:name="android.nfc.action.TECH_DISCOVERED"
android:resource="@xml/tag_type" />
</activity>
5.配置好后,可以在界面编写相应的处理代码,现在运行程序,当标签靠近时,就会弹出自己的Activity。
参考文章:http://www.cnblogs.com/vir56k/archive/2013/03/05/2944665.html