Android NFC開(kāi)發(fā)概述
Near Field Communication (NFC) 為一短距離無(wú)線通信技術(shù),通常有效通訊距離為4厘米以內(nèi)。NFC工作頻率為13.65 兆赫茲,通信速率為106 kbit/秒到 848kbit/秒。
NFC通信總是由一個(gè)發(fā)起者 (initiator)和一個(gè)接受者(target)組成。通常initiator 主動(dòng)發(fā)送電磁場(chǎng)(RF)可以為被動(dòng)式接受者(passive target)提供電源。其工作的基本原理和收音機(jī)類似。正是由于被動(dòng)式接受者可以通過(guò)發(fā)起者提供電源,因此target 可以有非常簡(jiǎn)單的形式,比如標(biāo)簽,卡,sticker 的形式。
NFC 也支持點(diǎn)到點(diǎn)的通信(peer to peer) 此時(shí)參與通信的雙方都有電源支持。
和其它無(wú)線通信方式如Bluetooth相比,NFC 支持的通信帶寬和距離要小的多,但是它成本低,如價(jià)格標(biāo)簽可能只有幾分錢,也不需要配對(duì),搜尋設(shè)備等,通信雙方可以在靠近的瞬間完成交互。
在Android NFC 應(yīng)用中,Android手機(jī)通常是作為通信中的發(fā)起者,也就是作為NFC的讀寫器。Android手機(jī)也可以模擬作為NFC通信的接受者且從Android 2.3.3起也支持P2P通信。
Android對(duì)NFC的支持主要在 android.nfc 和android.nfc.tech 兩個(gè)包中。
android.nfc 包中主要類如下:
- NfcManager 可以用來(lái)管理Android設(shè)備中指出的所有NFC Adapter,但由于大部分Android設(shè)備只支持一個(gè)NFC Adapter,可以直接使用getDefaultAapater 來(lái)獲取系統(tǒng)支持的Adapter。
- NfcAdapter 為一NFC Adapter 對(duì)象,可以用來(lái)定義一個(gè)Intent使系統(tǒng)在檢測(cè)到NFC Tag時(shí)通知你定義的Activity,并提供用來(lái)注冊(cè)forground tag 消息發(fā)送的方法等。
- NdefMessage 和NdefRecord NDEF 為NFC forum 定義的數(shù)據(jù)格式。
Tag 代表一個(gè)被動(dòng)式Tag對(duì)象,可以代表一個(gè)標(biāo)簽,卡片,鑰匙扣等。當(dāng)Android設(shè)備檢測(cè)到一個(gè)Tag時(shí),會(huì)創(chuàng)建一個(gè)Tag對(duì)象,將其放在Intent對(duì)象,然后發(fā)送到相應(yīng)的Activity。
android.nfc.tech 中則定義了可以對(duì)Tag進(jìn)行的讀寫操作的類,這些類按照其使用的技術(shù)類型可以分成不同的類如:NfcA, NfcB, NfcF,以及MifareClassic 等。