android NFC 程式設計

來源:互聯網
上載者:User

NFC簡介

NFC是Near Field Communication縮寫,即近距離無線通訊技術。由飛利浦公司和索尼公司共同開發的NFC是一種非

接觸式識別和互聯技術,可以在行動裝置、消費類電子產品、

PC 和智能控制項工具間進行近距離無線通訊。

13.56MHz頻率運行於20厘米距離內。其傳輸速度有106 Kbit/秒、212 Kbit/秒或者424 Kbit/秒三種。目前近距離無線通訊已通

過成為ISO/IEC IS 18092國際標準、ECMA-340標準與ETSI

TS 102 190標準。NFC採用主動和被動兩種通訊模式。

手機NFC支援三種工作模式:讀/寫標籤模式,點到點模式,類比卡片模式。


NFC的基本類

Android平台提供了兩個android.nfc 和android.nfc.tech包,裡面有API來實現NFC標籤的操作。

android.nfc包的主要有4個類:

NfcManager類:可以用來管理Android裝置中指出的所有NFC Adapter,但由於大部分Android裝置只支援一個NFC

Adapter,可以直接使用getDefaultAapater方法來擷取系統支援的Adapter。

NfcAdapter類:本裝置的NFC adapter,可以定義Intent來請求將系統檢測到tags的提醒發送到你的Activity,並提供方

法去註冊前台tag提醒發布和前台NDEF推送。

NdefMessage類:NDEF是NFC論壇定義的資料結構,用來有效存資料到標籤中,如文本,URL,和其他MIME類

型。一個NdefMessage扮演一個容器,這個容器存哪些發送和讀到的資料。一個NdefMessage對象包含0或多個

NdefRecord,每個NDEF record有一個類型,比如文本,URL,智慧型海報/廣告,或其他MIME資料。在

NDEFMessage裡的第一個NfcRecord的類型用來發送tag到一個android裝置上的activity。

Tag類:標示一個被動的NFC目標,比如tag,card,鑰匙掛扣,甚至是一個電話類比的的NFC卡。可提供對標籤的各

種操作方法。

android.nfc.tech包

android.nfc.tech包含那些對tag查詢屬性和進行I/O操作的類。這些類分別標示一個tag支援的不同的NFC技術標準。

TagTechnology: 這個介面是下面所有tag technology類必須實現的。

NfcA: 支援ISO 14443-3A 標準的屬性和I/O操作。

NfcB:NFC-B (ISO 14443-3B)的屬性和I/O操作。

NfcF:NFC-F (JIS 6319-4)的屬性和I/O操作。

NfcV: NFC-V (ISO 15693)的屬性和I/O操作。

IsoDep:ISO-DEP (ISO 14443-4)的屬性和I/O操作。

Ndef:對支援NDEF格式的標籤進行讀寫操作。

NdefFormatable: 對那些可以被格式化成NDEF格式的tag提供一個格式化的操作。

MifareClassic: 如果android裝置支援MIFARE,提供對MIFARE Classic目標的屬性和I/O操作。

MifareUltralight: 如果android裝置支援MIFARE,提供對MIFARE Ultralight目標的屬性和I/O操作。


NFC編程基本步驟

設定許可權

限制版本號碼

限制安裝的裝置

定義可接收Tag的Activity(可獲得標籤的相關資訊)

處理業務(根據便簽的具體業務)


NFC標籤過濾系統

Android

device.

public void connect ():Enable I/O operations to the tag from this TagTechnology object.

public void format (NdefMessage firstMessage):Format a tag as NDEF, and write a NdefMessage.


NFC前台調度

將處理NFC標籤的權利交給某個視窗(優先順序最高)

1、在onCreate()中獲得NfcAdapter對象;

2、建立與該Activity關聯的PendingIntent;

3、指定一個用於處理NFC標籤的視窗;通常會在onResume()方法中採用nfcAdapter.enableForegroundDispatch()

來實現;

4、禁止視窗處理NFC標籤。採用nfcAdapter.disableForegroundDispatch()來實現。


使用權限設定

在你能訪問一個裝置的NFC硬體和正確的處理NFC的Intent之前,需要在AndroidManifest.xml中先聲明下面的項:

1.NFC使用 元素來訪問NFC硬體:

2.最小SDK版本需要設定正確, API level 9隻包含有限的tag支援;用API level 10來實現對tag的廣泛的讀寫支援。

3. uses-feature 元素定義:你的程式可以再android市場裡顯示有NFC硬體。

4. NFC intent filter告訴android系統你的activity能處理NFC資料,可以定義1個或多個intent filter。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.