Android硬體之NCF技術(近場通訊技術)
阿新 • • 發佈:2019-01-31
Android硬體之NFC技術
NFC(Near Field Communication,近場通訊),是一種資料傳輸技術。但是,與Wi-Fi、藍芽、紅外線等技術最主要的差異就是有效距離,NFC的有效距離很短,一般不超過10釐米。
Android 2.3.1( API Level = 9 ) 開始支援NFC技術,但Android 2.x 和 3.x 對NFC的支援非常有限。而從Android 4.0 ( API Level = 14 )開始,Google 開始向NFC發力,NFC技術在Android中得到了更進一步的支援。尤其是4.1,可以利用NFC技術傳遞較大的資料(NFC會利用藍芽結合進行大資料量的傳輸)
NFC的工作模式:
點對點(P2P)模式:
該模式與藍芽、紅外線差不多,可以用於不同NFC裝置之間進行資料交換,只是NFC的點對點模式有效距離更短(不能超過10釐米),而且傳輸建立速度要比紅外線和藍芽技術快很多。
點對點模式的典型應用是兩部支援NFC的手機或平板電腦實現資料的點對點傳輸,例如,下載音樂、交換圖片、同步裝置地址薄。因此,通過NFC,多個裝置如數字相機,PDA,計算機,手機之間,都可以快速連結並交換資料或者服務。 NFC、藍芽和紅外線的比較
NFC標籤
不同的NFC標籤之間差異很大,有的比較簡單,只支援簡單的讀寫操作,有的會將標籤設計成只讀變成類似光碟一樣。有的比較複雜,比如有的可以通過硬體加密限制你的訪問區域。
Android SDK API 主要支援NFC論壇標準,這種標準被稱為NFC資料交換格式,簡稱NDEF(NFC Data Exchange Format )。
NFC的三重過濾機制
在一個NFC裝置讀取NFC標籤或另一個NFC裝置中的資料之前會在0.1秒之內建立NFC連線,然後資料會自動從被讀的一端流向取資料的一端。資料接收端會根據具體的資料格式和標籤型別呼叫相應的Activity(這種行為也稱為Tag Dispatch)。這些Activity都需要定義Intent Filter。這些Intent Filter中就會指定不同的過濾機制,分為3個級別。因此,也稱為NFC的三重過濾機制。
三重過濾機制:
- 讀卡器模式(Reader / Writer Mode)
- 模擬卡模式(Card Emulation Mode)
- 點對點模式(P2P Mode)
點對點模式的典型應用是兩部支援NFC的手機或平板電腦實現資料的點對點傳輸,例如,下載音樂、交換圖片、同步裝置地址薄。因此,通過NFC,多個裝置如數字相機,PDA,計算機,手機之間,都可以快速連結並交換資料或者服務。 NFC、藍芽和紅外線的比較
NFC | 藍芽 | 紅外 | |
網路型別 | 點對點 | 單點對多點 | 點對點 |
使用距離 | ≤0.1m | ≤10m |
≤1m |
傳輸速度 | 106、212、424、868、721、115Kbps | 2.1 Mbps | ~1.0 Mbps |
建立時間 | < 0.1s | 6s | 0.5s |
安全性 | 具備, 硬體實現 | 具備,軟體實現 | 不具備, 使用IRFM 時除外 |
通訊模式 | 主動-主動/被動 | 主動-主動 | 主動-主動 |
成本 | 低 | 中 | 低 |
- NDEF_DISCOVERED:只過濾固定格式的NDEF資料。例如,純文字、指定協議(http、ftp、smb等)的URI等。
- TECH_DISCOVERED:當ACTION_NDEF_DISCOVERED指定的過濾機制無法匹配Tag時,就會使用這種過濾機制進行匹配。這種過濾機制並不是通過Tag中的資料格式進行匹配的,而是根據Tag支援的資料儲存格式進行匹配。因此這種過濾機制的範圍更廣。
- TAG_DISCOVERED:如果將NFC的過濾機制看成是if……else if……else語句的話,那麼這種過濾機制相當於最後的else語句。前面兩種過濾機制都失敗了,系統就會利用這種過濾機制來處理。這種過濾機制用來處理未識別的Tag(資料格式不對,而且Tag支援的格式也不匹配)。
- 設定許可權
- 限制安卓版本
- 限制安裝的裝置的硬體
- Android Beam技術
- 獲取Tag物件
Tag detectedTag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
- 判斷NFC標籤的資料型別(通過Ndef.get方法)
Ndef ndef = Ndef.get(tag);
- 寫入資料
ndef.writeNdefMessage(ndefMessage);例子:通過NFC自動啟動Android應用程式 此例子,先獲取本機中安裝的所有程式,然後選擇之後,需要將對應的NFC標籤或者貼紙靠近手機,然後就會自動啟動。 NDEF的規範 需要與NFC標籤傳遞資料時,需要一定的格式,也就是NDEF的各種格式規範: 其中,這些規範十分常用: Android Beam Android Beam的基本理念就是兩部NFC裝置靠近時,通過觸控一部NFC裝置的螢幕,將資料推向另外一部NFC裝置。PS:在傳遞過程中需保持較近的距離。