真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

深入分析AndroidNFC技術(shù)androidnfc開發(fā)-創(chuàng)新互聯(lián)

從概念,實現(xiàn)原理以及最紅實現(xiàn)的源碼等有助于大家對NFC技術(shù)有更深入的理解。

創(chuàng)新互聯(lián)專業(yè)成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè),集網(wǎng)站策劃、網(wǎng)站設(shè)計、網(wǎng)站制作于一體,網(wǎng)站seo、網(wǎng)站優(yōu)化、網(wǎng)站營銷、軟文發(fā)稿等專業(yè)人才根據(jù)搜索規(guī)律編程設(shè)計,讓網(wǎng)站在運行后,在搜索中有好的表現(xiàn),專業(yè)設(shè)計制作為您帶來效益的網(wǎng)站!讓網(wǎng)站建設(shè)為您創(chuàng)造效益。

NFC 是 Near Field Communication 縮寫,即近距離無線通訊技術(shù)??梢栽谝苿釉O(shè)備、消費類電子產(chǎn)品、PC 和智能控件工具間進行近距離無線通信。簡單一點說,nfc 功能是什么?nfc功能有什么用?其實NFC提供了一種簡單、觸控式的解決方案,可以讓消費者簡單直觀地交換信息、訪問內(nèi)容與服務(wù)。NFC 技術(shù)允許電子設(shè)備之間進行非接觸式點對點數(shù)據(jù)傳輸,在十厘米(3.9英吋)內(nèi),交換數(shù)據(jù),其傳輸速度有106Kbit/秒、212Kbit/秒或者424Kbit/秒三種。接下來我們更加詳細的來了解一下nfc的應(yīng)用。

深入分析Android NFC技術(shù) android nfc開發(fā)

一、nfc是什么,它的工作模式?


NFC工作模式主要有三種工作模式,分別是卡模式(Card emulation)、點對點模式(P2P mode)和讀卡器模式(Reader/writer mode)。

(1)讀卡器模式 http://www.jianshu.com/p/e89cc9bba8a6

數(shù)據(jù)在NFC芯片中,可以簡單理解成“刷標簽”。本質(zhì)上就是通過支持NFC的手機或其它電子設(shè)備從帶有NFC芯片的標簽、貼紙、名片等媒介中讀寫信息。通常NFC標簽是不需要外部供電的。當支持NFC的外設(shè)向NFC讀寫數(shù)據(jù)時,它會發(fā)送某種磁場,而這個磁場會自動的向NFC標簽供電。

(2)仿真卡模式

數(shù)據(jù)在支持NFC的手機或其它電子設(shè)備中,可以簡單理解成“刷手機”。本質(zhì)上就是將支持NFC的手機或其它電子設(shè)備當成借記卡、公交卡、門禁卡等IC卡使用?;驹硎菍⑾鄳?yīng)IC卡中的信息憑證封裝成數(shù)據(jù)包存儲在支持NFC的外設(shè)中 。在使用時還需要一個NFC射頻器(相當于刷卡器)。將手機靠近NFC射頻器,手機就會接收到NFC射頻器發(fā)過來的信號,在通過一系列復(fù)雜的驗證后,將IC卡的相應(yīng)信息傳入NFC射頻器,最后這些IC卡數(shù)據(jù)會傳入NFC射頻器連接的電腦,并進行相應(yīng)的處理(如電子轉(zhuǎn)帳、開門等操作)。

(3)點對點模式

該模式與藍牙、紅外差不多,用于不同NFC設(shè)備之間進行數(shù)據(jù)交換,不過這個模式已經(jīng)沒有有“刷”的感覺了。其有效距離一般不能超過4厘米,但傳輸建立速度要比紅外和藍牙技術(shù)快很多,傳輸速度比紅外塊得多,如過雙方都使用 Android4.2,NFC會直接利用藍牙傳輸。這種技術(shù)被稱為 AndroidBeam。所以使用 androidBeam 傳輸數(shù)據(jù)的兩部設(shè)備不再限于4厘米之內(nèi)。

深入分析Android NFC技術(shù) android nfc開發(fā)

二、Android 對 NFC 的支持


不同的 NFC 標簽之間差異很大,有的只支持簡單的讀寫操作,有時還會采用支持一次性寫入的芯片,將 NFC 標簽設(shè)計成只讀的。當然,也存在一些復(fù)雜的 NFC 標簽,例如,有一些 NFC 標簽可以通過硬件加密的方式限制對某一區(qū)域的訪問。還有一些標簽自帶操作環(huán)境,允許 NFC 設(shè)備與這些標簽進行更復(fù)雜的交互。這些標簽中的數(shù)據(jù)也會采用不同的格式。但 Android SDK API 主要支持 NFC 論壇標準(Forum Standard),這種標準被稱為 NDEF(NFC Data Exchange Format,NFC 數(shù)據(jù)交換格式)。

NDEF 格式其實就類似于硬盤的NTFS,下面我們看一下 NDEF 數(shù)據(jù):

(1)NDEF數(shù)據(jù)的操作

Android SDK API支持如下3種NDEF數(shù)據(jù)的操作:

1)從NFC標簽讀取NDEF格式的數(shù)據(jù)。

2)向NFC標簽寫入NDEF格式的數(shù)據(jù)。

3)通過Android Beam技術(shù)將NDEF數(shù)據(jù)發(fā)送到另一部NFC設(shè)備。

用于描述NDEF格式數(shù)據(jù)的兩個類:

1)NdefMessage:描述NDEF格式的信息,實際上我們寫入NFC標簽的就是NdefMessage對象。

2)NdefRecord:描述NDEF信息的一個信息段,一個NdefMessage可能包含一個或者多個NdefRecord。

NdefMessage和NdefRecord是Android NFC技術(shù)的核心類,無論讀寫NDEF格式的NFC標簽,還是通過Android Beam技術(shù)傳遞Ndef格式的數(shù)據(jù),都需要這兩個類。

(2)非NDEF數(shù)據(jù)的操作

對于某些特殊需求,可能要存任意的數(shù)據(jù),對于這些數(shù)據(jù),我們就需要自定義格式。這些數(shù)據(jù)格式實際上就是普通的字節(jié)流,至于字節(jié)流中的數(shù)據(jù)代表什么,就由開發(fā)人員自己定義了。

(3)編寫NFC程序的基本步驟

1)設(shè)置權(quán)限,限制Android版本、安裝的設(shè)備:

深入分析Android NFC技術(shù) android nfc開發(fā)

2)定義可接收Tag的Activity,配置一下launchMode屬性:

深入分析Android NFC技術(shù) android nfc開發(fā)

三、實戰(zhàn)使用NFC標簽

(1)利用NFC標簽讓Android自動運行程序

場景是這樣的:現(xiàn)將應(yīng)用程序的包寫到 NFC 程序上,然后我們將 NFC標簽靠近 Android 手機,手機就會自動運行包所對應(yīng)的程序,這個是NFC 比較基本的一個應(yīng)用。下面以貼近標簽自動運行 Android 自帶的“短信”為例。

向NFC標簽寫入數(shù)據(jù)一般分為三步:

1)獲取Tag對象

深入分析Android NFC技術(shù) android nfc開發(fā)

2)判斷NFC標簽的數(shù)據(jù)類型(通過Ndef.get方法)

3)寫入數(shù)據(jù)

深入分析Android NFC技術(shù) android nfc開發(fā)

實際運行效果如下:

操作步驟:

點擊自動打開短信界面或百度頁面,進入對應(yīng) Activity,將 NFC 標簽貼近手機背面,提示寫入成功。返回主界面,再將 NFC 標簽貼近手機背面,便能看到自動打開短信或者打開百度頁面。

深入分析Android NFC技術(shù) android nfc開發(fā)

深入分析Android NFC技術(shù) android nfc開發(fā)

深入分析Android NFC技術(shù) android nfc開發(fā)

四、NDEF 文本格式深度解析


獲取 NFC 標簽中的數(shù)據(jù)要通過 NdefRecord.getPayload 方法完成。當然,在處理這些數(shù)據(jù)之前,最好判斷一下 NdefRecord 對象中存儲的是不是 NDEF 文本格式數(shù)據(jù)。

(1)判斷數(shù)據(jù)是否為NDEF格式

1)TNF(類型名格式,Type Name Format)必須是NdefRecord.TNF_WELL_KNOWN。

2)可變的長度類型必須是NdefRecord.RTD_TEXT。

如果這兩個標準同時滿足,那么就為NDEF格式。

(2)NDEF文本格式規(guī)范

不管什么格式的數(shù)據(jù)本質(zhì)上都是由一些字節(jié)組成的。對于NDEF文本格式來說,這些數(shù)據(jù)的第1個字節(jié)描述了數(shù)據(jù)的狀態(tài),然后若干個字節(jié)描述文本的語言編碼,最后剩余字節(jié)表示文本數(shù)據(jù)。這些數(shù)據(jù)格式由NFC Forum的相關(guān)規(guī)范定義,可以通過 http://members.nfc-forum.org/specs/spec_dashboard 下載相關(guān)的規(guī)范。

下面這兩張表是規(guī)范中 3.2節(jié) 相對重要的翻譯部分:

深入分析Android NFC技術(shù) android nfc開發(fā)

實現(xiàn) NFC 標簽中的文本數(shù)據(jù)的讀寫操作:

深入分析Android NFC技術(shù) android nfc開發(fā)

深入分析Android NFC技術(shù) android nfc開發(fā)

點擊寫 NFC 標簽中的文本數(shù)據(jù),跳轉(zhuǎn)到對應(yīng)的 Activity,將 NFC 標簽卡貼近手機,寫入成功后會提示,再退回主頁面,選擇讀文本數(shù)據(jù),便可讀取。

深入分析Android NFC技術(shù) android nfc開發(fā)

深入分析Android NFC技術(shù) android nfc開發(fā)

五、非 NDEF 格式(操作步驟如上圖,具體實現(xiàn)查閱項目代碼)


六、NDEF Uri格式存儲(操作步驟如上圖,具體實現(xiàn)可查閱項目代碼)

MifareUltraligh t數(shù)據(jù)格式:將 NFC 標簽的存儲區(qū)域分為16個頁,每一個頁可以存儲4個字節(jié),一個可存儲64個字節(jié)(512位)。頁碼從0開始(0至15)。前4頁(0至3)存儲了NFC標簽相關(guān)的信息(如NFC標簽的序列號、控制位等)。從第5頁開始存儲實際的數(shù)據(jù)(4至15頁)。使用MifareUltralight.get 方法獲取 MifareUltralight 對象,然后調(diào)用MifareUltralight.connect 方法進行連接,并使用MifareUltralight.writePage 方法每次寫入1頁(4個字節(jié))。

也可以使用 MifareUltralight.readPages 方法每次連續(xù)讀取 4 頁。如果讀取的頁的序號超過 15,則從頭開始讀。例如,從第 15 頁(序號為14)開始讀。readPages 方法會讀取 14、15、0、1頁的數(shù)據(jù)。

深入分析Android NFC技術(shù) android nfc開發(fā)

github 鏈接


項目源碼地址:
https://github.com/RickyYu/Nfc-Android


當前文章:深入分析AndroidNFC技術(shù)androidnfc開發(fā)-創(chuàng)新互聯(lián)
地址分享:http://weahome.cn/article/idese.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部