Android硬件编程NFC学习笔记(1)

来源:互联网 发布:自己动手做大数据系统 编辑:程序博客网 时间:2024/05/02 04:16

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

0 0
原创粉丝点击