日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android近场通信---NFC基础(一)(转)

發(fā)布時間:2025/3/21 Android 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android近场通信---NFC基础(一)(转) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

轉(zhuǎn)自?http://blog.csdn.net/think_soft/article/details/8169483

?

?

本文譯自:http://developer.android.com/guide/topics/connectivity/nfc/nfc.html

本文介紹在Android系通過你所能執(zhí)行的基本任務(wù)。它解釋了如何用NDEF消息格式來發(fā)送和接收NFC數(shù)據(jù),并且介紹了支持這些功能的Android框架API。有關(guān)更高級的話題,包括對非NDEF格式數(shù)據(jù)的討論,情況“高級 NFC”

NDEF數(shù)據(jù)和Android一起工作的場景主要有兩個:

1.? 從NFC標簽中讀取NDEF數(shù)據(jù);

2.? 把NDEF消息從一個設(shè)備發(fā)送給另一個設(shè)備。

從NFC標簽中讀取NDEF數(shù)據(jù)是用標簽調(diào)度系統(tǒng)來處理的,它會分析被發(fā)現(xiàn)的NFC標簽,對數(shù)據(jù)進行適當?shù)姆诸?并啟動對該類數(shù)據(jù)感興趣的應(yīng)用程序。想要處理被掃描到NFC標簽的應(yīng)用程序會聲明一個Intent過濾器,并請求處理數(shù)據(jù)。

Android??Beam??功能允許設(shè)備把一個NDEF消息推送到物理上相互監(jiān)聽的另一個設(shè)備上。這種交互提供了比其他無線技術(shù)(如藍牙)更容易的發(fā)送數(shù)據(jù)的方法。因為NFC不需要手動的設(shè)備發(fā)現(xiàn)或配對要求。兩個設(shè)備在接近到一定范圍時會自動的連接。Android Beam通過一組NFC API來使用,以便應(yīng)用程序能夠在設(shè)備之間來傳輸信息。例如,通信錄、瀏覽器以及YouTube等應(yīng)用程序都使用Android Beam來跟其他設(shè)備共享通信錄、網(wǎng)頁和視頻。

NFC標簽調(diào)度系統(tǒng)

通常,除非是在設(shè)備的設(shè)置菜單中NFC被禁用,否則Android設(shè)備會在非鎖屏的狀態(tài)下搜索NFC。當Android設(shè)備發(fā)現(xiàn)NFC標簽時,期望的行為是用最合適的Activity來處理該Intent,而不是詢問用戶使用什么應(yīng)用程序。因為設(shè)備只能在很短的范圍內(nèi)掃描到NFC標簽,強制的讓用戶手動的選擇一個Activity,會導致設(shè)備離開NFC標簽,從而中斷該連接。你應(yīng)該開發(fā)你自己的Activity來處理你所關(guān)心的NFC標簽,從而阻止 選擇器的操作。

為了幫助你達到這個目標,Android提供了特殊的標簽調(diào)度系統(tǒng),來分析掃描到的NFC標簽,通過解析數(shù)據(jù),在被掃描到的數(shù)據(jù)中嘗試找到感興趣的應(yīng)用程序,具體做法如下:

1.? 解析NFC標簽并搞清楚標簽中標識數(shù)據(jù)負載的MIME類型或URI;

2.? 把MIME類型或URI以及數(shù)據(jù)負載封裝到一個Intent中。

3.? 基于Intent來啟動Activity。

怎樣把NFC標簽映射到MIME類型和URI

開始編寫NFC應(yīng)用程序之前,重要的是要理解不同類型的NFC標簽、標簽調(diào)度系統(tǒng)是如何解析NFC標簽的、以及在檢測到NDEF消息時,標簽調(diào)度系統(tǒng)所做的特定的工作等。NFC標簽涉及到廣泛的技術(shù),并且有很多不同的方法向標簽中寫入數(shù)據(jù)。Android支持由NFC Forum所定義的NDEF標準。

NDEF數(shù)據(jù)被封裝在一個消息(NdefMessage)中,該消息中包含了一條或多條記錄(NdefRecord)。每個NDEF記錄必須具有良好的你想要創(chuàng)建的記錄類型的規(guī)范的格式。Android也支持其他的不包含NDEF數(shù)據(jù)類型的標簽,你能夠使用android.nfc.tech包中的類來工作。要使用其他類型標簽來工作,涉及到編寫自己的跟該標簽通信的協(xié)議棧,因此我們建議你盡可能的使用NDEF,以便減少開發(fā)難度,并且最大化的支持Android設(shè)備。

注意:要下載完整的NDEF規(guī)范,請去“NFC論壇規(guī)范下載”網(wǎng)址來下載。

現(xiàn)在,你已經(jīng)具備了一些NFC標簽的背景知識,接下來要詳細的介紹Android是如何處理NDEF格式的標簽的。當Android設(shè)備掃描到包含NDEF格式數(shù)據(jù)的NFC標簽時,它會解析該消息,并嘗試搞清楚數(shù)據(jù)的MIME類型或URI標識。首先系統(tǒng)會讀取消息(NdefMessage)中的第一條NdefRecord,來判斷如何解釋整個NDEF消息(一個NDEF消息能夠有多條NDEF記錄)。在格式良好的NDEF消息中,第一條NdefRecord包含以下字段信息:

3-bit TNF(類型名稱格式)

指示如何解釋可變長度類型字段,在下表1中介紹有效值。

可變長度類型

說明記錄的類型,如果使用TNF_WELL_KNOWN,那么則使用這個字段來指定記錄的類型定義(RTD)。在下表2中定義了有效的RTD值。

可變長度ID

唯一標識該記錄。這個字段不經(jīng)常使用,但是,如果需要唯一的標識一個標記,那么就可以為該字段創(chuàng)建一個ID。

可變長度負載

你想讀/寫的實際的數(shù)據(jù)負載。一個NDEF消息能夠包含多個NDEF記錄,因此不要以為在NDEF消息的第一條NDEF記錄中包含了所有的負載。

標簽調(diào)度系統(tǒng)使用TNF和類型字段來嘗試把MIME類型或URI映射到NDEF消息中。如果成功,它會把信息跟實際的負載一起封裝到ACTION_NEDF_DISCOVERED類型的Intent中。但是,會有標簽調(diào)度系統(tǒng)不能根據(jù)第一條NDEF記錄來判斷數(shù)據(jù)類型的情況,這樣就會有NDEF數(shù)據(jù)不能被映射到MIME類型或URI,或者是NFC標簽沒有包含NDEF開始數(shù)據(jù)的情況發(fā)生。在這種情況下,就會用一個標簽技術(shù)信息相關(guān)的Tag對象和封裝在ACTION_TECH_DISCOVERED類型Intent對象內(nèi)部的負載來代替。

表1.介紹標簽調(diào)度系統(tǒng)映射如何把TNF和類型字段映射到MIME型或URI上。同時也介紹了那種類型的TNF不能被映射到MIME類型或URI上。這種情況下,標簽調(diào)度系統(tǒng)會退化到ACTION_TECH_DISCOVERED類型的Intent對象。

例如,如果標簽調(diào)度系統(tǒng)遇到一個TNF_ABSOLUTE_URI類型的記錄,它會把這個記錄的可變長度類型字段映射到一個URI中。標簽調(diào)度系統(tǒng)會把這個URI跟其他相關(guān)的標簽的信息(如數(shù)據(jù)負載)一起封裝到ACTION_NDEF_DISCOVERED的Intent對象中。在另一方面,如果遇到了TNF_UNKNOWN類型,它會創(chuàng)建一個封裝了標簽技術(shù)信息的Intent對象來代替。

表1.所支持的TNF和它們的映射

?

類型名稱格式(TNF)

映射

TNF_ABSOLUTE_URI

基于類型字段的URI

TNF_EMPTY

退化到ACTION_TECH_DISCOVERED類型的Intent對象

TNF_EXTERNAL_TYPE

基于類型字段中URN的URI。URN是縮短的格式(<domain_name>:<service_name)被編碼到NDEF類型中。Android會把這個URN映射成以下格式的URI:vnd.android.nfc://ext/<domain_name>:<service_name>。

TNF_MIME_MEDIA

基于類型字段的MIME類型

TNF_UNCHANGED

退化到ACTION_TECH_DISCOVERED類型的Intent對象

TNF_UNKNOWN

退化到ACTION_TECH_DISCOVERED類型的Intent對象

TNF_WELL_KNOWN

依賴你在類型字段中設(shè)置的記錄類型定義(RTD)的MIME類型或URI,

?

表2.TNF_WELL_KNOWN所支持的RTD和它們的映射

?

記錄類型定義(RTD)

映射

RTD_ALTERNATIVE_CARRIER

退化到ACTION_TECH_DISCOVERED類型的Intent對象

RTD_HANDOVER_CARRIER

退化到ACTION_TECH_DISCOVERED類型的Intent對象

RTD_HANDOVER_REQUEST

退化到ACTION_TECH_DISCOVERED類型的Intent對象

RTD_HANDOVER_SELECT

退化到ACTION_TECH_DISCOVERED類型的Intent對象

RTD_SMART_POSTER

基于負載解析的URI

RTD_TEXT

text/plain類型的MIME

RTD_URI

基于有效負載的URI

?

轉(zhuǎn)載于:https://www.cnblogs.com/SamuelSun/p/4517496.html

總結(jié)

以上是生活随笔為你收集整理的Android近场通信---NFC基础(一)(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 精品黑人一区二区三区久久 | 欧美日韩一二三区 | 新红楼梦2005锦江版高清在线观看 | 黄网站免费在线 | 草av在线| 亚洲精品456| 国产伦精品一区二区三区四区免费 | 国产亚洲欧美视频 | 国产免费黄色片 | 亚洲29p| 小视频成人| 国产一级视频在线播放 | 国产99爱| 天天摸日日摸狠狠添 | 精品久久久久久亚洲综合网站 | 超碰牛牛 | 久操色| 精品黑人一区二区三区 | 一区二区三区日 | 日韩 在线 | 快播av在线 | 中文在线观看免费高清 | 日韩三级av| 超碰精品在线观看 | 美女福利一区 | 国产一区二区高清视频 | 91亚洲精品在线观看 | 99国产热| 男女午夜影院 | 69av导航 | 亚洲欧美中日韩 | www.777奇米影视 | 欧美精品国产一区二区 | 91黄视频在线观看 | 波多野结衣免费观看视频 | 色人阁网站 | 草莓巧克力香氛动漫的观看方法 | 草草在线观看视频 | 欧美精品色呦呦 | 中国性老太hd大全69 | 九九爱爱视频 | 黄色av片三级三级三级免费看 | 成人黄网免费观看视频 | 性感av在线| 天堂网一区二区三区 | 国产在线播放一区二区 | 久久久久久在线观看 | 亚洲一区在线观看视频 | 国产美女被遭强高潮免费网站 | 亚洲成人天堂 | 久久这里只有 | 亚洲乱轮视频 | 波多野结衣一区二区三区免费视频 | 亚洲无码精品在线观看 | 免费av不卡 | 国产成人无码精品久久久久久 | 久久久久久久久久久久久久久久久久 | 亚洲国产综合一区 | 超碰碰碰碰 | 久久一二区 | 国产亚洲区 | 中文字幕无码精品亚洲 | 嫩草视频在线观看 | 免费看的黄网站 | 欧美激情免费在线观看 | 一起草国产 | 播放男人添女人下边视频 | 国产九色在线播放九色 | 国产精品无码内射 | av中文字幕第一页 | 视频在线播| 人成在线视频 | 日韩性网站 | 国产最新av | 久久少妇网 | 欧美日韩一二三区 | 超碰在线超碰 | 海角社区在线视频播放观看 | 亚洲看片网 | 毛片网页 | 99re在线视频 | 看一级黄色大片 | 久草免费网站 | 久久澡| 亚洲免费观看高清在线观看 | 成人黄色av网站 | 亚洲综合视频一区 | 日韩欧美在线视频免费观看 | 超碰国产97| 久久夜色精品国产噜噜亚洲av | 中文字幕avav | 亚洲v国产v欧美v久久久久久 | 亚洲国产黄色片 | 德国老妇性猛交 | 97人妻精品一区二区三区视频 | 免费观看毛片网站 | 国产无码日韩精品 | 国产成人无码专区 | 伊人综合影院 |