日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

Android NFC详解

發(fā)布時(shí)間:2023/12/9 Android 77 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android NFC详解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、NFC概覽

? ? ? ? NFC,全稱是Near Field Communication,中為近場(chǎng)通信,也叫做近距離無(wú)線通信技術(shù)。使用了NFC技術(shù)的設(shè)備(例如移動(dòng)電話)可以在彼此靠近的情況下進(jìn)行數(shù)據(jù)交換,是由非接觸式射頻識(shí)別(RFID)及互連互通技術(shù)整合演變而來(lái)的,通過(guò)在單一芯片上集成感應(yīng)式讀卡器、感應(yīng)式卡片和點(diǎn)對(duì)點(diǎn)通信的功能,利用移動(dòng)終端實(shí)現(xiàn)移動(dòng)支付、電子票務(wù)、門(mén)禁、移動(dòng)身份識(shí)別、防偽等應(yīng)用。

2、NFC工作原理

? ? ? ? NFC是一種短距高頻的無(wú)線電技術(shù),NFCIP-1標(biāo)準(zhǔn)規(guī)定NFC的通信距離為10厘米以內(nèi),運(yùn)行頻率13.56MHz,傳輸速度有106Kbit/s、212Kbit/s或者424Kbit/s三種。NFCIP-1標(biāo)準(zhǔn)詳細(xì)規(guī)定NFC設(shè)備的傳輸速度、編解碼方法、調(diào)制方案以及射頻接口的幀格式,此標(biāo)準(zhǔn)中還定義了NFC的傳輸協(xié)議,其中包括啟動(dòng)協(xié)議和數(shù)據(jù)交換方法等。

? ? ? ? NFC工作模式分為被動(dòng)模式和主動(dòng)模式。

? ? ? ? 1)被動(dòng)模式

? ? ? ? 被動(dòng)模式中NFC發(fā)起設(shè)備(也稱為主設(shè)備)需要供電設(shè)備,主設(shè)備利用供電設(shè)備的能量來(lái)提供射頻場(chǎng),并將數(shù)據(jù)發(fā)送到NFC目標(biāo)設(shè)備(也稱作從設(shè)備),傳輸速率需在106kbps、212kbps或424kbps中選擇其中一種。從設(shè)備不產(chǎn)生射頻場(chǎng),所以可以不需要供電設(shè)備,而是利用主設(shè)備產(chǎn)生的射頻場(chǎng)轉(zhuǎn)換為電能,為從設(shè)備的電路供電,接收主設(shè)備發(fā)送的數(shù)據(jù),并且利用負(fù)載調(diào)制(load modulation)技術(shù),以相同的速度將從設(shè)備數(shù)據(jù)傳回主設(shè)備。因?yàn)榇斯ぷ髂J较聫脑O(shè)備不產(chǎn)生射頻場(chǎng),而是被動(dòng)接收主設(shè)備產(chǎn)生的射頻場(chǎng),所以被稱作被動(dòng)模式,在此模式下,NFC主設(shè)備可以檢測(cè)非接觸式卡或NFC目標(biāo)設(shè)備,與之建立連接。

? ? ? ? 2)主動(dòng)模式

? ? ? ? 主動(dòng)模式中,發(fā)起設(shè)備和目標(biāo)設(shè)備在向?qū)Ψ桨l(fā)送數(shù)據(jù)時(shí),都必須主動(dòng)產(chǎn)生射頻場(chǎng),所以稱為主動(dòng)模式,它們都需要供電設(shè)備來(lái)提供產(chǎn)生射頻場(chǎng)的能量。這種通信模式是對(duì)等網(wǎng)絡(luò)通信的標(biāo)準(zhǔn)模式,可以獲得非??焖俚倪B接速率

3、NFC在Android上應(yīng)用

? ? ? ? 近距離無(wú)線通信 (NFC) 是一組近距離無(wú)線技術(shù),借助 NFC,您可以在 NFC 標(biāo)簽與 Android 設(shè)備之間或者兩臺(tái) Android 設(shè)備之間共享小型負(fù)載。

? ? ? ? 標(biāo)簽的復(fù)雜度可能各有不同。簡(jiǎn)單標(biāo)簽僅提供讀取和寫(xiě)入語(yǔ)義,有時(shí)可使用一次性可編程區(qū)域?qū)⒖ㄆO(shè)置為只讀。較復(fù)雜的標(biāo)簽可提供數(shù)學(xué)運(yùn)算,還可使用加密硬件來(lái)驗(yàn)證對(duì)扇區(qū)的訪問(wèn)權(quán)限。最為復(fù)雜的標(biāo)簽可包含操作環(huán)境,允許與針對(duì)標(biāo)簽執(zhí)行的代碼進(jìn)行復(fù)雜的互動(dòng)。存儲(chǔ)在標(biāo)簽中的數(shù)據(jù)也可以采用多種格式編寫(xiě),但許多 Android 框架 API 都基于名為 NDEF(NFC 數(shù)據(jù)交換格式)的?NFC Forum?標(biāo)準(zhǔn)。

支持 NFC 的 Android 設(shè)備同時(shí)支持以下三種主要操作模式

  • 讀取器/寫(xiě)入器模式:支持 NFC 設(shè)備讀取和/或?qū)懭氡粍?dòng) NFC 標(biāo)簽和貼紙。
  • 點(diǎn)對(duì)點(diǎn)模式:支持 NFC 設(shè)備與其他 NFC 對(duì)等設(shè)備交換數(shù)據(jù);Android Beam 使用的就是此操作模式。
  • 卡模擬模式:支持 NFC 設(shè)備本身充當(dāng) NFC 卡。然后,可以通過(guò)外部 NFC 讀取器(例如 NFC 銷售終端)訪問(wèn)模擬 NFC 卡。
  • ? ? ? ? 1)基本 NFC 任務(wù)

    將 NDEF 數(shù)據(jù)與 Android 結(jié)合使用時(shí),會(huì)有兩個(gè)主要用例:

    • 從 NFC 標(biāo)簽讀取 NDEF 數(shù)據(jù)
    • 使用Android Beam?將 NDEF 消息從一臺(tái)設(shè)備傳輸?shù)搅硪慌_(tái)設(shè)備

    ? ? ? ? 從 NFC 標(biāo)簽讀取 NDEF 數(shù)據(jù)的操作由標(biāo)簽調(diào)度系統(tǒng)進(jìn)行處理,該系統(tǒng)會(huì)分析已發(fā)現(xiàn)的 NFC 標(biāo)簽,對(duì)相應(yīng)數(shù)據(jù)進(jìn)行適當(dāng)分類,然后啟動(dòng)對(duì)分類后的數(shù)據(jù)感興趣的應(yīng)用。如果某個(gè)應(yīng)用想要處理掃描到的 NFC 標(biāo)簽,則可以聲明 Intent 過(guò)濾器,并請(qǐng)求對(duì)數(shù)據(jù)進(jìn)行處理。

    ? ? ? ? 借助 Android Beam? 功能,設(shè)備可以將 NDEF 消息推送到另一臺(tái)設(shè)備,方法是將兩臺(tái)設(shè)備靠在一起。與藍(lán)牙等其他無(wú)線技術(shù)相比,這種互動(dòng)可提供更簡(jiǎn)便的數(shù)據(jù)發(fā)送方式,因?yàn)槭褂?NFC 時(shí)無(wú)需手動(dòng)發(fā)現(xiàn)設(shè)備并將其配對(duì)。當(dāng)兩臺(tái)設(shè)備之間的距離近到一定范圍內(nèi)時(shí),系統(tǒng)會(huì)自動(dòng)開(kāi)始連接。Android Beam 功能通過(guò)一組 NFC API 提供,因此任何應(yīng)用都可以在設(shè)備間傳輸信息。例如,通訊錄、瀏覽器和 YouTube 應(yīng)用可使用 Android Beam 在多臺(tái)設(shè)備之間共享聯(lián)系人信息、網(wǎng)頁(yè)和視頻。

    ? ? ? ? 標(biāo)簽調(diào)度系統(tǒng)

    ? ? ? ? Android 設(shè)備通常會(huì)在屏幕解鎖后查找 NFC 標(biāo)簽,除非設(shè)備的“設(shè)置”菜單中停用了 NFC 功能。在 Android 設(shè)備發(fā)現(xiàn) NFC 標(biāo)簽后,期望的行為就是讓最合適的 Activity 來(lái)處理該 Intent,而不是詢問(wèn)用戶應(yīng)使用哪個(gè)應(yīng)用。

    ? ? ? ? 為幫助您實(shí)現(xiàn)這一目標(biāo),Android 提供了一個(gè)特殊的標(biāo)簽調(diào)度系統(tǒng),用于分析掃描到的 NFC 標(biāo)簽、解析它們并嘗試找到對(duì)掃描到的數(shù)據(jù)感興趣的應(yīng)用。這個(gè)標(biāo)簽調(diào)度系統(tǒng)通過(guò)以下操作來(lái)實(shí)現(xiàn)這些目的:

  • 解析 NFC 標(biāo)簽并確定 MIME 類型或 URI(后者用于標(biāo)識(shí)標(biāo)簽中的數(shù)據(jù)負(fù)載)。
  • 將 MIME 類型或 URI 與負(fù)載一起封裝到 Intent 中。
  • 根據(jù) Intent 啟動(dòng) Activity。
  • 如何將 NFC 標(biāo)簽映射到 MIME 類型和 URI

    ? ? ? ? 在開(kāi)始編寫(xiě) NFC 應(yīng)用之前,請(qǐng)務(wù)必了解不同類型的 NFC 標(biāo)簽、標(biāo)簽調(diào)度系統(tǒng)如何解析 NFC 標(biāo)簽,以及標(biāo)簽調(diào)度系統(tǒng)在檢測(cè)到 NDEF 消息后所執(zhí)行的特殊工作。NFC 標(biāo)簽涉及多種技術(shù),也可以通過(guò)許多不同的方式將數(shù)據(jù)寫(xiě)入 NFC 標(biāo)簽中。Android 對(duì) NFC Forum 定義的 NDEF 標(biāo)準(zhǔn)的支持最完備。

    ? ? ? ? NDEF 數(shù)據(jù)封裝在包含一條或多條記錄 (NdefRecord) 的消息 (NdefMessage) 內(nèi)。每條 NDEF 記錄的格式都必須正確,符合您要?jiǎng)?chuàng)建的記錄所屬的類型對(duì)應(yīng)的規(guī)范。Android 還支持其他類型的不包含 NDEF 數(shù)據(jù)的標(biāo)簽,您可以使用 android.nfc.tech 軟件包中的類處理這些標(biāo)簽。在處理這些其他類型的標(biāo)簽時(shí),您需要通過(guò)編寫(xiě)自己的協(xié)議棧來(lái)與標(biāo)簽進(jìn)行通信,因此,我們建議您盡可能使用 NDEF,以簡(jiǎn)化開(kāi)發(fā),同時(shí)最大限度地支持 Android 設(shè)備。

    ? ? ? ? 注意:要下載完整的 NDEF 規(guī)范,請(qǐng)轉(zhuǎn)到?NFC Forum 規(guī)范和應(yīng)用文檔網(wǎng)站,查看有關(guān)如何構(gòu)造 NDEF 記錄的示例。

    ? ? ? ? 現(xiàn)在,您已了解 NFC 標(biāo)簽的一些相關(guān)背景知識(shí),以下幾部分將詳細(xì)介紹 Android 如何處理 NDEF 格式的標(biāo)簽。當(dāng) Android 設(shè)備掃描包含 NDEF 格式數(shù)據(jù)的 NFC 標(biāo)簽時(shí),它會(huì)解析該消息并嘗試確定數(shù)據(jù)的 MIME 類型或起標(biāo)識(shí)作用的 URI。為此,系統(tǒng)需要讀取 NdefMessage 中的第一條 NdefRecord,以確定如何解讀整個(gè) NDEF 消息(一個(gè) NDEF 消息可能具有多條 NDEF 記錄)。在格式正確的 NDEF 消息中,第一條 NdefRecord 包含以下字段:

    ? ? ? ? a)、3 位 TNF(類型名稱格式)

    表示如何解讀可變長(zhǎng)度類型字段。表 1 中介紹了有效的值。

    ? ? ? ? b)、可變長(zhǎng)度類型

    介紹了記錄的類型。如果使用 TNF_WELL_KNOWN,那么請(qǐng)使用此字段來(lái)指定記錄類型定義 (RTD)。表 2 中介紹了有效的 RTD 值。

    ? ? ? ? c)、可變長(zhǎng)度 ID

    記錄的唯一標(biāo)識(shí)符。此字段并不經(jīng)常使用,但如果您需要對(duì)標(biāo)簽進(jìn)行唯一標(biāo)識(shí),則可為其創(chuàng)建 ID。

    ? ? ? ? d)、可變長(zhǎng)度負(fù)載

    您要讀取或?qū)懭氲膶?shí)際數(shù)據(jù)負(fù)載。一個(gè) NDEF 消息可以包含多條 NDEF 記錄,因此不要假定 NDEF 消息的第一條 NDEF 記錄中就有完整的負(fù)載。

    表 1. 支持的 TNF 及其映射類型名稱格式 (TNF)映射
    TNF_ABSOLUTE_URI基于類型字段的 URI。
    TNF_EMPTY回退到?ACTION_TECH_DISCOVERED。
    TNF_EXTERNAL_TYPE基于類型字段中 URN 的 URI。URN 以縮短形式 (<domain_name>:<service_name>) 編碼到 NDEF 類型字段中。Android 會(huì)以如下形式將此映射到 URI:vnd.android.nfc://ext/<domain_name>:<service_name>。
    TNF_MIME_MEDIA基于類型字段的 MIME 類型。
    TNF_UNCHANGED在第一條記錄中無(wú)效,因此會(huì)回退到?ACTION_TECH_DISCOVERED。
    TNF_UNKNOWN回退到?ACTION_TECH_DISCOVERED。
    TNF_WELL_KNOWNMIME 類型或 URI,具體取決于您在類型字段中設(shè)置的記錄類型定義 (RTD)。如需詳細(xì)了解可用的 RTD 及其映射,請(qǐng)參閱表 2。
    表 2. TNF_WELL_KNOWN 支持的 RTD 及其映射記錄類型定義 (RTD)映射
    RTD_ALTERNATIVE_CARRIER回退到?ACTION_TECH_DISCOVERED。
    RTD_HANDOVER_CARRIER回退到?ACTION_TECH_DISCOVERED。
    RTD_HANDOVER_REQUEST回退到?ACTION_TECH_DISCOVERED。
    RTD_HANDOVER_SELECT回退到?ACTION_TECH_DISCOVERED。
    RTD_SMART_POSTER基于負(fù)載解析結(jié)果的 URI。
    RTD_TEXTtext/plain?的 MIME 類型。
    RTD_URI基于負(fù)載的 URI。

    ? ? ? ? 標(biāo)簽調(diào)度系統(tǒng)使用 TNF 和類型字段來(lái)嘗試將 MIME 類型或 URI 映射到 NDEF 消息。如果成功映射,它會(huì)將相關(guān)信息與實(shí)際負(fù)載一起封裝到 ACTION_NDEF_DISCOVERED Intent 內(nèi)。不過(guò),在某些情況下,標(biāo)簽調(diào)度系統(tǒng)無(wú)法根據(jù)第一條 NDEF 記錄來(lái)確定數(shù)據(jù)的類型。如果 NDEF 數(shù)據(jù)無(wú)法映射到 MIME 類型或 URI,或者 NFC 標(biāo)簽不包含 NDEF 數(shù)據(jù),就會(huì)出現(xiàn)上述情況。在此類情況下,標(biāo)簽調(diào)度系統(tǒng)會(huì)轉(zhuǎn)而將含有標(biāo)簽技術(shù)相關(guān)信息的 Tag 對(duì)象及負(fù)載封裝到ACTION_TECH_DISCOVERED Intent 中。

    ? ? ? ? 表 1 介紹了標(biāo)簽調(diào)度系統(tǒng)如何將 TNF 和類型字段映射到 MIME 類型或 URI,還介紹了哪些 TNF 無(wú)法映射到 MIME 類型或 URI。如果無(wú)法映射,標(biāo)簽調(diào)度系統(tǒng)會(huì)回退到 ACTION_TECH_DISCOVERED。

    ? ? ? ? 例如,如果標(biāo)簽調(diào)度系統(tǒng)遇到 TNF_ABSOLUTE_URI 類型的記錄,則會(huì)將該記錄的可變長(zhǎng)度類型字段映射到 URI 中。標(biāo)簽調(diào)度系統(tǒng)將此 URI 連同與標(biāo)簽有關(guān)的其他信息(如負(fù)載)一起封裝在 ACTION_NDEF_DISCOVERED Intent 的數(shù)據(jù)字段中。另一方面,如果標(biāo)簽調(diào)度系統(tǒng)遇到 TNF_UNKNOWN 類型的記錄,則會(huì)轉(zhuǎn)而創(chuàng)建一個(gè) Intent,用于封裝與標(biāo)簽技術(shù)相關(guān)的信息。

    如何將 NFC 標(biāo)簽分發(fā)到應(yīng)用

    當(dāng)標(biāo)簽調(diào)度系統(tǒng)創(chuàng)建完用于封裝 NFC 標(biāo)簽及其標(biāo)識(shí)信息的 Intent 后,它會(huì)將該 Intent 發(fā)送給感興趣的應(yīng)用,由這些應(yīng)用對(duì)其進(jìn)行過(guò)濾。如果有多個(gè)應(yīng)用可處理該 Intent,系統(tǒng)會(huì)顯示 Activity 選擇器,供用戶選擇要使用的 Activity。標(biāo)簽調(diào)度系統(tǒng)定義了三種 Intent,按優(yōu)先級(jí)從高到低列出如下:

  • ACTION_NDEF_DISCOVERED:如果掃描到包含 NDEF 負(fù)載的標(biāo)簽,并且可識(shí)別其類型,則使用此 Intent 啟動(dòng) Activity。這是優(yōu)先級(jí)最高的 Intent,標(biāo)簽調(diào)度系統(tǒng)會(huì)盡可能嘗試使用此 Intent 啟動(dòng) Activity,在行不通時(shí)才會(huì)嘗試使用其他 Intent。
  • ACTION_TECH_DISCOVERED:如果沒(méi)有登記要處理 ACTION_NDEF_DISCOVERED Intent 的 Activity,則標(biāo)簽調(diào)度系統(tǒng)會(huì)嘗試使用此 Intent 來(lái)啟動(dòng)應(yīng)用。此外,如果掃描到的標(biāo)簽包含無(wú)法映射到 MIME 類型或 URI 的 NDEF 數(shù)據(jù),或者該標(biāo)簽不包含 NDEF 數(shù)據(jù),但它使用了已知的標(biāo)簽技術(shù),那么也會(huì)直接啟動(dòng)此 Intent(無(wú)需先啟動(dòng) ACTION_NDEF_DISCOVERED)。
  • ACTION_TAG_DISCOVERED:如果沒(méi)有處理 ACTION_NDEF_DISCOVERED 或者 ACTION_TECH_DISCOVERED Intent 的 Activity,則使用此 Intent 啟動(dòng) Activity。
  • 標(biāo)簽調(diào)度系統(tǒng)的基本工作方式如下:

  • 在解析 NFC 標(biāo)簽(ACTION_NDEF_DISCOVERED 或 ACTION_TECH_DISCOVERED)時(shí),嘗試使用由標(biāo)簽調(diào)度系統(tǒng)創(chuàng)建的 Intent 啟動(dòng) Activity。
  • ?如果不存在過(guò)濾該 Intent 的 Activity,則嘗試使用下一優(yōu)先級(jí)的 Intent(ACTION_TECH_DISCOVERED 或 ACTION_TAG_DISCOVERED)啟動(dòng) Activity,直到應(yīng)用過(guò)濾該 Intent 或者直到標(biāo)簽調(diào)度系統(tǒng)試完所有可能的 Intent。
  • 如果沒(méi)有應(yīng)用過(guò)濾任何 Intent,則不執(zhí)行任何操作。
  • 圖 1.?標(biāo)簽調(diào)度系統(tǒng)

    ? ? ? ? ?盡可能使用 NDEF 消息和 ACTION_NDEF_DISCOVERED Intent,因?yàn)樗侨N Intent 中最具體的一種。與其他兩種 Intent 相比,此 Intent 可使您在更恰當(dāng)?shù)臅r(shí)間啟動(dòng)應(yīng)用,從而為用戶帶來(lái)更好的體驗(yàn)。

    ? ? ? ? 在 Android 清單中請(qǐng)求 NFC 訪問(wèn)權(quán)限

    ? ? ? ? 您必須先在?AndroidManifest.xml?文件中聲明以下內(nèi)容,然后才能訪問(wèn)設(shè)備的 NFC 硬件并正確處理 NFC Intent:

    • 用于訪問(wèn) NFC 硬件的 NFC?<uses-permission>?元素:
    <uses-permission android:name="android.permission.NFC" />
    • 您的應(yīng)用支持的最低 SDK 版本。API 級(jí)別 9 僅通過(guò) ACTION_TAG_DISCOVERED 支持有限的標(biāo)簽調(diào)度,并且只能通過(guò) EXTRA_NDEF_MESSAGES extra 提供對(duì) NDEF 消息的訪問(wèn)權(quán)限。無(wú)法訪問(wèn)其他任何標(biāo)簽屬性或 I/O 操作。API 級(jí)別 10 提供全面的讀取器/寫(xiě)入器支持以及前臺(tái) NDEF 推送功能;API 級(jí)別 14 則提供了一種更簡(jiǎn)便的方式(即,使用 Android Beam 將 NDEF 消息推送到其他設(shè)備),同時(shí)提供了用于創(chuàng)建 NDEF 記錄的其他便捷方法。
    <uses-sdk android:minSdkVersion="10"/>
    • uses-feature?元素,以便您的應(yīng)用僅在那些具備 NFC 硬件的設(shè)備的 Google Play 中顯示:
    <uses-feature android:name="android.hardware.nfc" android:required="true" />

    ? ? ? ? ?如果您的應(yīng)用使用 NFC 功能,但該功能對(duì)您的應(yīng)用來(lái)說(shuō)并不重要,您可以省略 uses-feature 元素,并在運(yùn)行時(shí)通過(guò)檢查 getDefaultAdapter() 是否為 null 來(lái)了解 NFC 的可用性。

    ? ? ? ? 過(guò)濾 NFC Intent

    ? ? ? ? 要在掃描到您打算處理的 NFC 標(biāo)簽時(shí)啟動(dòng)您的應(yīng)用,您的應(yīng)用可以在 Android 清單中過(guò)濾一個(gè)、兩個(gè)或所有三個(gè) NFC Intent。不過(guò),您通常需要過(guò)濾 ACTION_NDEF_DISCOVERED Intent,以最有力地控制應(yīng)用在何時(shí)啟動(dòng)。如果沒(méi)有應(yīng)用過(guò)濾 ACTION_NDEF_DISCOVERED,或者負(fù)載不是 NDEF,ACTION_TECH_DISCOVERED Intent 會(huì)取代 ACTION_NDEF_DISCOVERED。ACTION_TAG_DISCOVERED 通常因過(guò)于籠統(tǒng)而不適合過(guò)濾。許多應(yīng)用會(huì)在過(guò)濾 ACTION_TAG_DISCOVERED 前過(guò)濾 ACTION_NDEF_DISCOVERED 或 ACTION_TECH_DISCOVERED,導(dǎo)致 您的應(yīng)用啟動(dòng)的概率會(huì)比較低。過(guò)濾 ACTION_TAG_DISCOVERED 是應(yīng)用在沒(méi)有其他應(yīng)用來(lái)處理 ACTION_NDEF_DISCOVERED 或 ACTION_TECH_DISCOVERED Intent 的情況下的最后一道保險(xiǎn)。

    ? ? ? ? 由于 NFC 標(biāo)簽部署各有不同,并且很多時(shí)候它們都不由您控制,因此,ACTION_NDEF_DISCOVERED 不一定每次都可用,您可以根據(jù)需要回退到另外兩種 Intent。如果您可以控制標(biāo)簽和寫(xiě)入數(shù)據(jù)的類型,建議您使用 NDEF 來(lái)設(shè)置標(biāo)簽的格式。以下幾部分介紹了如何過(guò)濾各類 Intent。

    • ACTION_NDEF_DISCOVERED

    ? ? ? ? 要過(guò)濾 ACTION_NDEF_DISCOVERED Intent,請(qǐng)聲明 Intent 過(guò)濾器以及要過(guò)濾的數(shù)據(jù)類型。以下示例展示了如何過(guò)濾 MIME 類型為 text/plain 的 ACTION_NDEF_DISCOVERED Intent:

    <intent-filter><action android:name="android.nfc.action.NDEF_DISCOVERED"/><category android:name="android.intent.category.DEFAULT"/><data android:mimeType="text/plain" /></intent-filter>

    ? ? ? ? 以下示例展示了如何過(guò)濾采用?https://developer.android.com/index.html?形式的 URI。

    <intent-filter><action android:name="android.nfc.action.NDEF_DISCOVERED"/><category android:name="android.intent.category.DEFAULT"/><data android:scheme="http"android:host="developer.android.com"android:pathPrefix="/index.html" /></intent-filter>
    • ACTION_TECH_DISCOVERED

    ? ? ? ? 如果您的 Activity 過(guò)濾 ACTION_TECH_DISCOVERED Intent,您必須創(chuàng)建一個(gè) XML 資源文件,用它在 tech-list 集內(nèi)指定您的 Activity 所支持的技術(shù)。如果 tech-list 集是標(biāo)簽所支持的技術(shù)(可通過(guò)調(diào)用 getTechList() 來(lái)獲取)的子集,則您的 Activity 會(huì)被視為一個(gè)匹配項(xiàng)。

    ? ? ? ? 例如,如果掃描到的標(biāo)簽支持 MifareClassic、NdefFormatable 和 NfcA,為了使它們與您的 Activity 匹配,您的 tech-list 集必須指定所有這三種技術(shù),或者其中的兩種或一種技術(shù)。

    ? ? ? ? 以下示例定義了所有技術(shù)。您可以移除自己不需要的技術(shù)。將此文件(你可以隨便命名)保存到 <project-root>/res/xml 文件夾中。

    <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"><tech-list><tech>android.nfc.tech.IsoDep</tech><tech>android.nfc.tech.NfcA</tech><tech>android.nfc.tech.NfcB</tech><tech>android.nfc.tech.NfcF</tech><tech>android.nfc.tech.NfcV</tech><tech>android.nfc.tech.Ndef</tech><tech>android.nfc.tech.NdefFormatable</tech><tech>android.nfc.tech.MifareClassic</tech><tech>android.nfc.tech.MifareUltralight</tech></tech-list></resources>

    ? ? ? ? 您還可以指定多個(gè) tech-list 集。每個(gè) tech-list 集都是獨(dú)立的;如果任意一個(gè) tech-list 集是由 getTechList() 返回的技術(shù)的子集,則您的 Activity 會(huì)被視為一個(gè)匹配項(xiàng)。這為匹配技術(shù)提供了 AND 和 OR 語(yǔ)義。以下示例展示了如何與支持 NfcA 和 Ndef 技術(shù)的標(biāo)簽或者支持 NfcB 和 Ndef 技術(shù)的標(biāo)簽相匹配:

    <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"><tech-list><tech>android.nfc.tech.NfcA</tech><tech>android.nfc.tech.Ndef</tech></tech-list><tech-list><tech>android.nfc.tech.NfcB</tech><tech>android.nfc.tech.Ndef</tech></tech-list></resources>

    ? ? ? ? 在您的?AndroidManifest.xml?文件中,在?<activity>?元素的?<meta-data>?元素中指定您剛剛創(chuàng)建的資源文件,如以下示例所示:

    <activity>...<intent-filter><action android:name="android.nfc.action.TECH_DISCOVERED"/></intent-filter><meta-data android:name="android.nfc.action.TECH_DISCOVERED"android:resource="@xml/nfc_tech_filter" />...</activity>

    ? ? ? ??如需詳細(xì)了解如何使用標(biāo)簽技術(shù)和 ACTION_TECH_DISCOVERED Intent,請(qǐng)參閱高級(jí) NFC 文檔中的使用支持的標(biāo)簽技術(shù)(以后寫(xiě))。

    • ACTION_TAG_DISCOVERED

    ? ? ? ? 要過(guò)濾 ACTION_TAG_DISCOVERED,請(qǐng)使用以下 Intent 過(guò)濾器:

    <intent-filter><action android:name="android.nfc.action.TAG_DISCOVERED"/></intent-filter>
    • 從 Intent 中獲取信息

    ? ? ? ? 如果某個(gè) Activity 由于 NFC Intent 而啟動(dòng),您可以從該 Intent 中獲取有關(guān)掃描到的 NFC 標(biāo)簽的信息。Intent 可以包含以下 extra,具體取決于掃描到的標(biāo)簽:

    • EXTRA_TAG(必需):一個(gè) Tag 對(duì)象,表示掃描到的標(biāo)簽。
    • EXTRA_NDEF_MESSAGES(可選):從標(biāo)簽中解析出的一組 NDEF 消息。此 extra 對(duì)于 ACTION_NDEF_DISCOVERED Intent 而言是必需的。
    • EXTRA_ID(可選):標(biāo)簽的低級(jí)別 ID。

    ? ? ? ? 要獲取這些 extra,請(qǐng)檢查您的 Activity 是不是使用某個(gè) NFC Intent 啟動(dòng)的,以確保已掃描到標(biāo)簽,然后獲取 Intent 的 extra。以下示例展示了如何檢查 ACTION_NDEF_DISCOVERED Intent 并從 Intent extra 獲取 NDEF 消息。

    @Overrideprotected void onNewIntent(Intent intent) {super.onNewIntent(intent);...if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) {Parcelable[] rawMessages =intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);if (rawMessages != null) {NdefMessage[] messages = new NdefMessage[rawMessages.length];for (int i = 0; i < rawMessages.length; i++) {messages[i] = (NdefMessage) rawMessages[i];}// Process the messages array....}}}

    ? ? ? ? 或者,您可以從 Intent 中獲取 Tag 對(duì)象,該對(duì)象包含負(fù)載并允許您枚舉標(biāo)簽的技術(shù):

    Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);

    ? ? ? ? 創(chuàng)建常見(jiàn)類型的 NDEF 記錄?

    ? ? ? ? 本部分介紹了如何創(chuàng)建常見(jiàn)類型的 NDEF 記錄,以幫助向 NFC 標(biāo)簽寫(xiě)入數(shù)據(jù)或使用 Android Beam 發(fā)送數(shù)據(jù)。從 Android 4.0(API 級(jí)別 14)開(kāi)始引入平臺(tái)的 createUri() 方法可幫助您自動(dòng)創(chuàng)建 URI 記錄。從 Android 4.1(API 級(jí)別 16)開(kāi)始引入平臺(tái)的 createExternal() 和 createMime() 可幫助您創(chuàng)建 MIME 和外部類型的 NDEF 記錄。請(qǐng)盡可能使用這些輔助方法,以免在手動(dòng)創(chuàng)建 NDEF 記錄時(shí)出錯(cuò)。

    ? ? ? ? 本部分還介紹了如何為記錄創(chuàng)建相應(yīng)的 Intent 過(guò)濾器。所有這些 NDEF 記錄示例都應(yīng)該位于您寫(xiě)入標(biāo)簽或傳輸?shù)搅硪辉O(shè)備的 NDEF 消息的第一條 NDEF 記錄中。

    ? ? ? ? a)、TNF_ABSOLUTE_URI

    注意:建議您使用 RTD_URI 類型,而不是 TNF_ABSOLUTE_URI,因?yàn)榍罢吒鼮楦咝А?/p>

    您可以通過(guò)以下方式創(chuàng)建一條 TNF_ABSOLUTE_URI NDEF 記錄:

    NdefRecord uriRecord = new NdefRecord(NdefRecord.TNF_ABSOLUTE_URI ,"https://developer.android.com/index.html".getBytes(Charset.forName("US-ASCII")),new byte[0], new byte[0]);

    上一條 NDEF 記錄的 Intent 過(guò)濾器如下所示:?

    <intent-filter><action android:name="android.nfc.action.NDEF_DISCOVERED" /><category android:name="android.intent.category.DEFAULT" /><data android:scheme="http"android:host="developer.android.com"android:pathPrefix="/index.html" /></intent-filter>

    ? ? ? ? b)、TNF_MIME_MEDIA?

    您可以通過(guò)以下方式創(chuàng)建一條 TNF_MIME_MEDIA NDEF 記錄:

    使用 createMime() 方法:

    NdefRecord mimeRecord = NdefRecord.createMime("application/vnd.com.example.android.beam","Beam me up, Android".getBytes(Charset.forName("US-ASCII")));

    手動(dòng)創(chuàng)建 NdefRecord:

    NdefRecord mimeRecord = new NdefRecord(NdefRecord.TNF_MIME_MEDIA ,"application/vnd.com.example.android.beam".getBytes(Charset.forName("US-ASCII")),new byte[0], "Beam me up, Android!".getBytes(Charset.forName("US-ASCII")));

    ?上一條 NDEF 記錄的 Intent 過(guò)濾器如下所示:

    <intent-filter><action android:name="android.nfc.action.NDEF_DISCOVERED" /><category android:name="android.intent.category.DEFAULT" /><data android:mimeType="application/vnd.com.example.android.beam" /></intent-filter>

    ? ? ? ? c)、RTD 為 RTD_TEXT 的 TNF_WELL_KNOWN
    您可以通過(guò)以下方式創(chuàng)建一條 TNF_WELL_KNOWN NDEF 記錄:?

    public NdefRecord createTextRecord(String payload, Locale locale, boolean encodeInUtf8) {byte[] langBytes = locale.getLanguage().getBytes(Charset.forName("US-ASCII"));Charset utfEncoding = encodeInUtf8 ? Charset.forName("UTF-8") : Charset.forName("UTF-16");byte[] textBytes = payload.getBytes(utfEncoding);int utfBit = encodeInUtf8 ? 0 : (1 << 7);char status = (char) (utfBit + langBytes.length);byte[] data = new byte[1 + langBytes.length + textBytes.length];data[0] = (byte) status;System.arraycopy(langBytes, 0, data, 1, langBytes.length);System.arraycopy(textBytes, 0, data, 1 + langBytes.length, textBytes.length);NdefRecord record = new NdefRecord(NdefRecord.TNF_WELL_KNOWN,NdefRecord.RTD_TEXT, new byte[0], data);return record;}

    上一條 NDEF 記錄的 Intent 過(guò)濾器如下所示:

    <intent-filter><action android:name="android.nfc.action.NDEF_DISCOVERED" /><category android:name="android.intent.category.DEFAULT" /><data android:mimeType="text/plain" /></intent-filter>

    ? ? ? ? ?d)、RTD 為 RTD_URI 的 TNF_WELL_KNOWN

    您可以通過(guò)以下方式創(chuàng)建一條 TNF_WELL_KNOWN NDEF 記錄:

    使用 createUri(String) 方法:

    ? ? NdefRecord rtdUriRecord1 = NdefRecord.createUri("http://example.com");

    使用 createUri(Uri) 方法:

    Uri uri = Uri.parse("http://example.com");NdefRecord rtdUriRecord2 = NdefRecord.createUri(uri);

    ?手動(dòng)創(chuàng)建 NdefRecord:

    byte[] uriField = "example.com".getBytes(Charset.forName("US-ASCII"));byte[] payload = new byte[uriField.length + 1]; //add 1 for the URI Prefixpayload[0] = 0x01; //prefixes http://www. to the URISystem.arraycopy(uriField, 0, payload, 1, uriField.length); //appends URI to payloadNdefRecord rtdUriRecord = new NdefRecord(NdefRecord.TNF_WELL_KNOWN, NdefRecord.RTD_URI, new byte[0], payload);

    上一條 NDEF 記錄的 Intent 過(guò)濾器如下所示:

    <intent-filter><action android:name="android.nfc.action.NDEF_DISCOVERED" /><category android:name="android.intent.category.DEFAULT" /><data android:scheme="http"android:host="example.com"android:pathPrefix="" /></intent-filter>

    ? ? ? ? 使用 TNF_EXTERNAL_TYPE 實(shí)現(xiàn)更通用的 NFC 標(biāo)簽部署,以更好地支持 Android 設(shè)備和非 Android 設(shè)備。

    ? ? ? ? 注意:TNF_EXTERNAL_TYPE 的 URN 的規(guī)范格式為urn:nfc:ext:example.com:externalType,但 NFC Forum RTD 規(guī)范包含如下聲明:NDEF 記錄中必須省略 URN 的?urn:nfc:ext:?部分。因此,您只需要提供域名(示例中為?example.com)和類型(示例中為?externalType),并通過(guò)英文冒號(hào)將兩者分隔開(kāi)。分發(fā)?TNF_EXTERNAL_TYPE?時(shí),Android 會(huì)將?urn:nfc:ext:example.com:externalType?URN 轉(zhuǎn)換為?vnd.android.nfc://ext/example.com:externalType?URI,也就是示例中的 Intent 過(guò)濾器聲明的 URI。

    ? ? ? ? e)、Android 應(yīng)用記錄
    ? ? ? ? Android 4.0(API 級(jí)別 14)中引入了 Android 應(yīng)用記錄 (AAR) 功能,它可以更有力地確保在掃描到 NFC 標(biāo)簽時(shí)啟動(dòng)您的應(yīng)用。AAR 在 NDEF 記錄內(nèi)嵌入了應(yīng)用的軟件包名稱。您可以將 AAR 添加到 NDEF 消息的任意 NDEF 記錄中,因?yàn)?Android 會(huì)在整個(gè) NDEF 消息中搜索 AAR。如果找到 AAR,它會(huì)根據(jù) AAR 中的軟件包名稱啟動(dòng)相應(yīng)應(yīng)用。如果設(shè)備上沒(méi)有該應(yīng)用,則會(huì)啟動(dòng) Google Play,供用戶下載該應(yīng)用。

    ? ? ? ? 如果您想要阻止其他應(yīng)用過(guò)濾同一 Intent,并阻止其他應(yīng)用潛在地處理您已部署的特定標(biāo)簽,則可以使用 AAR。由于軟件包名稱方面的限制,AAR 僅在應(yīng)用級(jí)別受支持,與 Intent 過(guò)濾一樣在 Activity 級(jí)別不受支持。如果您需要在 Activity 級(jí)別處理 Intent,可使用 Intent 過(guò)濾器。

    ? ? ? ? 如果標(biāo)簽包含 AAR,標(biāo)簽調(diào)度系統(tǒng)將按以下方式執(zhí)行分發(fā):

  • 嘗試照常使用 Intent 過(guò)濾器啟動(dòng) Activity。如果與 Intent 匹配的 Activity 也與 AAR 匹配,則啟動(dòng)該 Activity。
  • 如果過(guò)濾該 Intent 的 Activity 與 AAR 不匹配,或者有多個(gè) Activity 可以處理該 Intent,再或者沒(méi)有 Activity 可以處理該 Intent,則啟動(dòng)由 AAR 指定的應(yīng)用。
  • 如果 AAR 指定的應(yīng)用都沒(méi)法啟動(dòng),則轉(zhuǎn)到 Google Play,請(qǐng)用戶根據(jù) AAR 下載相應(yīng)的應(yīng)用。
  • ? ? ? ? 注意:您可以使用前臺(tái)調(diào)度系統(tǒng)替換 AAR 和 Intent 調(diào)度系統(tǒng),以便在發(fā)現(xiàn) NFC 標(biāo)簽后優(yōu)先啟動(dòng)前臺(tái) Activity。使用此方法時(shí),Activity 必須在前臺(tái)運(yùn)行才能替換 AAR 和 Intent 調(diào)度系統(tǒng)。

    ? ? ? ? 如果您仍希望過(guò)濾掃描到的不包含 AAR 的標(biāo)簽,則可以照常聲明 Intent 過(guò)濾器。如果您的應(yīng)用對(duì)其他不包含 AAR 的標(biāo)簽感興趣,這將非常有用。例如,您可能需要保證您的應(yīng)用能夠處理由您部署的專有標(biāo)簽以及由第三方部署的常規(guī)標(biāo)簽。請(qǐng)注意,AAR 特定于搭載 Android 4.0 或更高版本的設(shè)備,因此,在部署標(biāo)簽時(shí),您很可能需要將 AAR 和 MIME 類型/URI 結(jié)合使用,以支持各種設(shè)備。此外,在部署 NFC 標(biāo)簽時(shí),請(qǐng)考慮:要如何編寫(xiě) NFC 標(biāo)簽,才能使其支持大多數(shù)設(shè)備(Android 設(shè)備和其他設(shè)備)。為此,您可以定義相對(duì)唯一的 MIME 類型或 URI,從而使應(yīng)用更容易區(qū)分它們。

    ? ? ? ? Android 提供了 createApplicationRecord() 這個(gè)簡(jiǎn)單的 API 來(lái)創(chuàng)建 AAR。您只需將 AAR 嵌入 NdefMessage 中的任意位置即可。您不需要使用 NdefMessage 的第一條記錄,除非 AAR 是 NdefMessage 中唯一的記錄。這是因?yàn)?Android 系統(tǒng)會(huì)檢查 NdefMessage 的第一條記錄,以此來(lái)確定標(biāo)簽的 MIME 類型或 URI;在創(chuàng)建應(yīng)用要過(guò)濾的 Intent 時(shí)需要用到標(biāo)簽的 MIME 類型或 URI。以下代碼展示了如何創(chuàng)建 AAR:

    NdefMessage msg = new NdefMessage(new NdefRecord[] {...,NdefRecord.createApplicationRecord("com.example.android.beam")});)

    ? ? ? ? 向其他設(shè)備傳輸 NDEF 消息?

    ? ? ? ? Android Beam 可在兩臺(tái) Android 設(shè)備之間進(jìn)行簡(jiǎn)單的點(diǎn)對(duì)點(diǎn)數(shù)據(jù)交換。需要將數(shù)據(jù)傳輸?shù)搅硪慌_(tái)設(shè)備的應(yīng)用必須在前臺(tái)運(yùn)行,并且要接收數(shù)據(jù)的設(shè)備不得處于鎖定狀態(tài)。當(dāng)傳輸設(shè)備與接收設(shè)備的距離足夠近時(shí),傳輸設(shè)備會(huì)顯示“觸摸即可傳輸”界面。然后,用戶可以選擇是否將消息傳輸?shù)浇邮赵O(shè)備。

    ? ? ? ? 注意:API 級(jí)別 10 中提供前臺(tái) NDEF 推送,其功能與 Android Beam 類似。此后,這些 API 已棄用,但可用于支持舊設(shè)備。如需了解詳情,請(qǐng)參閱?enableForegroundNdefPush()。

    ? ? ? ? 調(diào)用以下兩種方法之一可為您的應(yīng)用啟用 Android Beam:

    • setNdefPushMessage():接受 NdefMessage 以將其設(shè)置為待傳輸?shù)南ⅰT趦膳_(tái)設(shè)備的距離足夠接近時(shí)自動(dòng)傳輸消息。
    • setNdefPushMessageCallback():接受包含 createNdefMessage()(在設(shè)備處于可接收數(shù)據(jù)的范圍內(nèi)時(shí)調(diào)用)的回調(diào)。該回調(diào)支持您根據(jù)需要?jiǎng)?chuàng)建 NDEF 消息。

    ? ? ? ? Activity 一次只能推送一個(gè) NDEF 消息,因此,如果設(shè)置了兩個(gè) NDEF 消息,setNdefPushMessageCallback() 將優(yōu)先于 setNdefPushMessage()。要使用 Android Beam,必須滿足以下一般準(zhǔn)則:

    • 傳輸數(shù)據(jù)的 Activity 必須在前臺(tái)運(yùn)行。兩臺(tái)設(shè)備的屏幕都必須處于解鎖狀態(tài)。
    • 必須將要傳輸?shù)臄?shù)據(jù)封裝到 NdefMessage 對(duì)象中。
    • 接收傳輸數(shù)據(jù)的 NFC 設(shè)備必須支持 com.android.npp NDEF 推送協(xié)議或 NFC Forum 的 SNEP(簡(jiǎn)單 NDEF 交換協(xié)議)。API 級(jí)別 9 (Android 2.3) 到 API 級(jí)別 13 (Android 3.2) 的設(shè)備都需要使用 com.android.npp 協(xié)議。API 級(jí)別 14 (Android 4.0) 及更高版本的設(shè)備需要使用 com.android.npp 和 SNEP。

    ? ? ? ? 注意:如果您的 Activity 支持 Android Beam 且在前臺(tái)運(yùn)行,則標(biāo)準(zhǔn) Intent 調(diào)度系統(tǒng)將停用。不過(guò),如果您的 Activity 也支持前臺(tái)調(diào)度,那么它仍然可以掃描與前臺(tái)調(diào)度中設(shè)置的 Intent 過(guò)濾器相匹配的標(biāo)簽。

    ? ? ? ? 要啟用 Android Beam,請(qǐng)執(zhí)行以下操作:

  • 創(chuàng)建一個(gè) NdefMessage,其中包含要推送到其他設(shè)備的 NdefRecord。
  • 調(diào)用帶有 NdefMessage 的 setNdefPushMessage(),或者,調(diào)用 setNdefPushMessageCallback,將 NfcAdapter.CreateNdefMessageCallback 對(duì)象傳入 Activity 的 onCreate() 方法中。這些方法至少需要您通過(guò) Android Beam 啟用一個(gè) Activity,同時(shí)激活一個(gè)由其他 Activity 組成的可選列表。通常,如果兩臺(tái)設(shè)備處于通信范圍內(nèi),而您的 Activity 只需要一直推送同一 NDEF 消息,您一般可以使用 setNdefPushMessage()。如果您的應(yīng)用關(guān)注應(yīng)用的當(dāng)前上下文,并需要根據(jù)用戶當(dāng)前在您的應(yīng)用中執(zhí)行的操作來(lái)推送 NDEF 消息,則可以使用 setNdefPushMessageCallback。
  • ? ? ? ? 以下示例展示了一個(gè)簡(jiǎn)單 Activity 如何調(diào)用 Activity 的 onCreate() 方法中的 NfcAdapter.CreateNdefMessageCallback。此示例還提供了一些方法來(lái)幫助您創(chuàng)建 MIME 記錄:

    package com.example.android.beam;import android.app.Activity;import android.content.Intent;import android.nfc.NdefMessage;import android.nfc.NdefRecord;import android.nfc.NfcAdapter;import android.nfc.NfcAdapter.CreateNdefMessageCallback;import android.nfc.NfcEvent;import android.os.Bundle;import android.os.Parcelable;import android.widget.TextView;import android.widget.Toast;import java.nio.charset.Charset;public class Beam extends Activity implements CreateNdefMessageCallback {NfcAdapter nfcAdapter;TextView textView;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);TextView textView = (TextView) findViewById(R.id.textView);// Check for available NFC AdapternfcAdapter = NfcAdapter.getDefaultAdapter(this);if (nfcAdapter == null) {Toast.makeText(this, "NFC is not available", Toast.LENGTH_LONG).show();finish();return;}// Register callbacknfcAdapter.setNdefPushMessageCallback(this, this);}@Overridepublic NdefMessage createNdefMessage(NfcEvent event) {String text = ("Beam me up, Android!\n\n" +"Beam Time: " + System.currentTimeMillis());NdefMessage msg = new NdefMessage(new NdefRecord[] { createMime("application/vnd.com.example.android.beam", text.getBytes())/*** The Android Application Record (AAR) is commented out. When a device* receives a push with an AAR in it, the application specified in the AAR* is guaranteed to run. The AAR overrides the tag dispatch system.* You can add it back in to guarantee that this* activity starts when receiving a beamed message. For now, this code* uses the tag dispatch system.*///,NdefRecord.createApplicationRecord("com.example.android.beam")});return msg;}@Overridepublic void onResume() {super.onResume();// Check to see that the Activity started due to an Android Beamif (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(getIntent().getAction())) {processIntent(getIntent());}}@Overridepublic void onNewIntent(Intent intent) {// onResume gets called after this to handle the intentsetIntent(intent);}/*** Parses the NDEF Message from the intent and prints to the TextView*/void processIntent(Intent intent) {textView = (TextView) findViewById(R.id.textView);Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);// only one message sent during the beamNdefMessage msg = (NdefMessage) rawMsgs[0];// record 0 contains the MIME type, record 1 is the AAR, if presenttextView.setText(new String(msg.getRecords()[0].getPayload()));}}

    ? ? ? ? 注意,此代碼為 AAR 添加了注釋,您可以將其移除。如果啟用 AAR,則 AAR 中指定的應(yīng)用始終會(huì)收到 Android Beam 消息。如果該應(yīng)用不存在,則會(huì)啟動(dòng) Google Play,請(qǐng)用戶下載該應(yīng)用。因此,對(duì)于搭載 Android 4.0 及更高版本的設(shè)備(如果使用了 AAR)而言,以下 Intent 過(guò)濾器在技術(shù)上是不需要的:?

    <intent-filter><action android:name="android.nfc.action.NDEF_DISCOVERED"/><category android:name="android.intent.category.DEFAULT"/><data android:mimeType="application/vnd.com.example.android.beam"/></intent-filter>

    ? ? ? ? ?憑借此 Intent 過(guò)濾器,com.example.android.beam?應(yīng)用現(xiàn)在可以在以下情況下啟動(dòng):掃描到 NFC 標(biāo)簽或通過(guò) Android Beam 接收到類型為 的 AAR,或者在 NDEF 格式的消息包含類型為?application/vnd.com.example.android.beam?的 MIME 記錄時(shí)。

    ? ? ? ? 即使 AAR 能夠保證啟動(dòng)或下載應(yīng)用,但我們?nèi)越ㄗh您使用 Intent 過(guò)濾器,因?yàn)樗鼈冊(cè)试S您在應(yīng)用中啟動(dòng)所選的 Activity,而不是始終啟動(dòng)由 AAR 指定的軟件包內(nèi)的主 Activity。AAR 不具備 Activity 級(jí)別的粒度。此外,由于某些 Android 設(shè)備不支持 AAR,因此您還應(yīng)在 NDEF 消息的第一條 NDEF 記錄中嵌入標(biāo)識(shí)信息,以便在需要時(shí)進(jìn)行過(guò)濾。

    ?4、NFC與其他技術(shù)的比較

    ? ? ? ? 目前的近距離無(wú)線通信技術(shù)包括了RFID、藍(lán)牙、紅外等, NFC是一種短距離的高頻無(wú)線通訊技術(shù),電子設(shè)備之間允許進(jìn)行非接觸式點(diǎn)對(duì)點(diǎn)數(shù)據(jù)傳輸。其工作頻率為 13.56MHz,通信距離 0~20cm(實(shí)際大部分產(chǎn)品都在 10cm 以內(nèi)),傳輸速率可為106kbit/s、212kbit/s、424 kbit/s和848kbit/s。近距無(wú)線通信技術(shù)除NFC外,主要還包括射頻識(shí)別(RFID)、藍(lán)牙(Bluetooth)、紫蜂(ZigBee)、紅外、 Wi-Fi等技術(shù)。以上各項(xiàng)技術(shù)都有各自的特點(diǎn)和優(yōu)點(diǎn),下圖給出了 NFC 以及其他六種幾種短距離無(wú)線通信技術(shù)在所列頻段上性能的比較。

    ?

    ? ? 可以看出,NFC 技術(shù)具有極高的安全性,在短距離通信中具有性能優(yōu)勢(shì),更重要的是成本較低,因此自其 2003 年問(wèn)世以來(lái),得到眾多企業(yè)的關(guān)注和支持。

    ? ? ? ? NFC與RFID的比較

    ? ? ? ? 第一,工作模式不同。NFC是將點(diǎn)對(duì)點(diǎn)通信功能,讀寫(xiě)器功能和非接觸卡功能集成進(jìn)一顆芯片,而RFID則有閱讀器和標(biāo)簽兩部分組成。NFC技術(shù)既可以讀取也可以寫(xiě)入,而RFID只能實(shí)現(xiàn)信息的讀取以及判定。 [2]?

    ? ? ? ? 第二,傳輸距離不同。NFC傳輸距離比RFID小的多,NFC 的傳輸距離只有10厘米,RFID的傳輸距離可以達(dá)到幾米、甚至幾十米。NFC是一種近距離的私密通信方式,相對(duì)于RFID來(lái)說(shuō)NFC具有距離近、帶寬高、能耗低、安全性高等特點(diǎn)。 [2]?

    ? ? ? ? 第三,應(yīng)用領(lǐng)域不同。NFC更多的應(yīng)用于消費(fèi)類電子設(shè)領(lǐng)域,在門(mén)禁、公交、手機(jī)支付等領(lǐng)域發(fā)揮著巨大的作用;RFID則更擅長(zhǎng)于長(zhǎng)距離識(shí)別,更多的被應(yīng)用在生產(chǎn)、物流、跟蹤、資產(chǎn)管理上。 [2]?

    ? ? ? ? 近場(chǎng)通信NFC與藍(lán)牙的比較

    ? ? ? ? NFC和藍(lán)牙都是短程通信技術(shù),相對(duì)于藍(lán)牙很早就被集成到移動(dòng)電話中并已經(jīng)被普及,NFC最近幾年才開(kāi)始被集成進(jìn)移動(dòng)電話中,并且到目前為止只集成在少數(shù)移動(dòng)電話中。 [2]?

    ? ? ? ? 第一,建立時(shí)間不同,NFC通信設(shè)置程序簡(jiǎn)單,通信建立時(shí)間很短,僅需0.1s左右;而藍(lán)牙通信設(shè)置程序相對(duì)復(fù)雜,通信建立時(shí)間較長(zhǎng),大概需要6s。 [2]?

    ? ? ? ? 第二,傳輸距離不同,NFC傳輸距離只有10cm,而藍(lán)牙傳輸距離可達(dá)10m。但NFC在傳輸功耗和安全性方面略優(yōu)于藍(lán)牙。 [2]?

    ? ? ? ? 第三,傳輸速度和工作頻率不同,NFC工作頻率為13.56MHz, 傳輸速度最大424 Kbit/s,而藍(lán)牙工作頻率為2.4GHz,傳輸速度可 達(dá)2.1 Mbit/s。 [2]?

    ? ? ? ? 近場(chǎng)通信NFC與紅外的比較

    NFC和紅外傳輸相比,傳輸距離相當(dāng),但比紅外傳輸速度更快,NFC傳輸速度最大可達(dá)424 Kbit/s,而紅外傳輸速度大概 100Kbit/s。建立時(shí)間NFC比紅外略快,NFC建立時(shí)間為0.1s, 紅外傳輸建立時(shí)間為0.5s。紅外傳輸必須嚴(yán)格的對(duì)齊才能傳輸數(shù)據(jù),且中間不能有障礙物,而NFC則沒(méi)有這種限制;另外NFC比紅外更安全可靠。

    總結(jié)

    以上是生活随笔為你收集整理的Android NFC详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

    日韩国产精品久久 | 天天干天天操天天射 | 国产婷婷 | 日韩久久久久 | 国产码电影 | 成人在线免费观看网站 | 成人黄色大片在线观看 | 国产精品爽爽爽 | 亚洲精品黄色片 | 曰韩精品| 国产一级黄色av | 久久电影中文字幕视频 | a特级毛片 | 国产三级精品在线 | 日韩中文字幕视频在线 | 亚洲精品午夜视频 | 视频1区2区 | 国产精品久久网 | 午夜黄色一级片 | 天天爽天天爽天天爽 | 在线天堂中文www视软件 | 白丝av免费观看 | 久久精品影视 | 成人在线一区二区 | 制服丝袜在线 | 欧美一级片在线播放 | 精品专区一区二区 | www.狠狠色 | 最近日本字幕mv免费观看在线 | 日本中文乱码卡一卡二新区 | 91传媒在线观看 | av视屏在线播放 | 国产 日韩 中文字幕 | 亚洲精品自在在线观看 | 亚洲理论在线观看 | 五月天国产 | 婷婷在线精品视频 | 国产最新网站 | 久久精品96 | 日韩欧美高清免费 | 超级碰视频 | 网站在线观看你们懂的 | 亚洲成人欧美 | 激情婷婷在线观看 | 香蕉视频免费在线播放 | 国产精品99久久免费观看 | 天天干夜夜想 | 射射射综合网 | 日本中文一区二区 | 精壮的侍卫呻吟h | 久久久精选| 成人免费ⅴa | 成年人在线免费看视频 | 久久综合久久综合久久综合 | 国产日韩精品久久 | 免费看91的网站 | 91av小视频| 午夜精品久久久久久久99热影院 | 爱色婷婷| 亚洲精品乱码久久久久久按摩 | 色婷婷激情网 | 亚洲精品18日本一区app | 亚洲电影一区二区 | 免费视频xnxx com| 欧美a影视 | 久久精品精品 | 日韩久久久久久久久久久久 | 国产99久久久国产精品成人免费 | 国产成人精品综合久久久久99 | 黄色小说网站在线 | 免费黄色av | 日韩有码网站 | 97综合视频 | 韩日电影在线免费看 | 日韩色视频在线观看 | 精品亚洲二区 | 国产老妇av | 国产视频在线观看一区二区 | 最新国产中文字幕 | 91麻豆看国产在线紧急地址 | 黄色一级免费 | 天天鲁一鲁摸一摸爽一爽 | 日日干夜夜草 | 天天爽天天做 | 中文字幕在线观看视频一区 | 亚洲一级片 | 福利一区二区三区四区 | 日韩精品免费专区 | 四虎国产精品成人免费4hu | 91网址在线看 | 中文欧美字幕免费 | 亚洲成av人电影 | 国产经典 欧美精品 | 亚洲精品国产精品久久99热 | 国产韩国日本高清视频 | 五月综合 | 日韩精品91偷拍在线观看 | 最新婷婷色 | www.天天色 | 久久免费观看视频 | 国产精品色在线 | 久久久久久久久久久久久久电影 | 美女福利视频网 | 中国成人一区 | 国产在线视频资源 | 91精品免费在线观看 | 国产永久免费高清在线观看视频 | 欧美99热| 国产成人一区二区三区 | 国产高清成人 | 狠狠操在线 | 国产字幕在线看 | 精品成人网 | 欧美一区二区三区在线视频观看 | 五月激情五月激情 | 久久黄色小说 | 99热这里有精品 | 蜜臀av夜夜澡人人爽人人 | 中文字幕2021 | 天海翼一区二区三区免费 | 午夜精品一区二区国产 | 不卡的av电影在线观看 | 97人人视频| 午夜精品av| 欧美孕妇与黑人孕交 | 国产小视频你懂的 | 蜜桃av久久久亚洲精品 | 免费a视频在线观看 | 黄色一级大片在线观看 | 欧美综合色在线图区 | 久久国产精品视频 | 国产精品2018 | 国产资源网站 | 爱爱av网站 | 久久久久久国产精品亚洲78 | 亚洲精品久久久久中文字幕m男 | 激情欧美一区二区三区免费看 | 97视频人人 | 一本一本久久a久久精品综合妖精 | www免费视频com━ | 女人魂免费观看 | 国产高清久久 | 成年人在线免费看视频 | av福利在线导航 | 国产在线精品一区二区不卡了 | 麻豆 free xxxx movies hd| 国产精品福利在线观看 | www色网站 | 久草| 亚洲专区中文字幕 | 欧美精品免费在线观看 | 波多在线视频 | 97色视频在线 | 天天激情综合 | 欧美精品久久久久久久久久 | 91免费视频网站在线观看 | 麻豆传媒视频在线播放 | 国产一级二级视频 | 天天干天天射天天爽 | 91在线蜜桃臀| 园产精品久久久久久久7电影 | 天天操天天干天天摸 | 欧美9999 | 黄色免费在线视频 | 国产精品久久视频 | 在线免费黄色毛片 | 国产黄色片久久久 | 日韩免费电影在线观看 | 日韩艹 | 91精品天码美女少妇 | 色吊丝在线永久观看最新版本 | 久99热| 午夜精品一区二区三区在线观看 | 国产精品福利在线播放 | 国产精品综合在线观看 | 亚洲伊人婷婷 | 久久草草热国产精品直播 | 超碰人人草| 国产精品videossex国产高清 | 久草资源在线观看 | 欧美日比视频 | 国产中文字幕一区二区三区 | 国产视频中文字幕在线观看 | 91麻豆文化传媒在线观看 | 国产一区视频在线播放 | 久久久久国产精品免费 | 成年人电影免费看 | 天天综合网~永久入口 | 亚洲国产精品人久久电影 | av一本久道久久波多野结衣 | 狠狠操影视| 福利在线看片 | 日韩av一区二区三区四区 | 国产又黄又猛又粗 | 国产日韩中文在线 | 操碰av| 天天综合日日夜夜 | 国产福利一区二区三区在线观看 | 欧美国产日韩一区二区三区 | 狠狠狠狠干| 蜜桃传媒一区二区 | 免费看wwwwwwwwwww的视频 久久久久久99精品 91中文字幕视频 | 五月天综合激情网 | 久久无码精品一区二区三区 | 美女黄频免费 | 永久免费在线 | 国产在线播放不卡 | 精品久久久久久综合日本 | 超碰人人超碰 | 久草免费福利在线观看 | 天天艹天天爽 | 久久区二区 | 欧美激情视频在线观看免费 | 91精品国产92久久久久 | 天天看天天干 | 一级片免费观看 | 久久久久五月天 | 日本黄区免费视频观看 | 麻豆传媒视频在线免费观看 | 国产精品久久久久免费 | 激情视频综合网 | 日韩一级电影在线观看 | 久久艹综合 | 欧美成人91 | 一区二区精品在线 | 一区二区三区在线电影 | 成人av电影在线播放 | 欧美激情精品久久久久久免费 | 午夜黄色一级片 | 手机av资源 | 亚洲久草在线视频 | 国产一级久久久 | 一 级 黄 色 片免费看的 | 操一草| 精品一区二区三区电影 | 在线 高清 中文字幕 | 激情中文字幕 | 久久综合福利 | 丝袜网站在线观看 | 国产一二三四在线视频 | 99在线观看免费视频精品观看 | 视频国产一区二区三区 | 日韩欧美精品免费 | 欧美精品久久久久久久亚洲调教 | 91福利社区在线观看 | 日本最大色倩网站www | 国产精品成人免费精品自在线观看 | 色在线视频 | 91chinese在线 | www.91成人| 黄色小说免费在线观看 | 99久久夜色精品国产亚洲96 | 国产1区2区 | 天天看天天干天天操 | 色噜噜日韩精品欧美一区二区 | 中文字幕在线观看一区二区三区 | 九九热免费在线观看 | 98久久| 经典三级一区 | 蜜臀av夜夜澡人人爽人人 | 天天操操操操操 | avhd高清在线谜片 | 成人黄色影片在线 | 日韩在线视频网 | 一级片视频在线 | 亚洲成人精品久久久 | 免费黄a | 国产一区二区电影在线观看 | 久久福利小视频 | 国产免费a| 日韩在线免费视频 | 欧洲成人av | 激情五月在线观看 | 天堂在线一区二区 | 最新日韩中文字幕 | 97涩涩视频 | 中国一级片在线 | 亚洲好视频 | 国产精品不卡av | 在线观看国产高清视频 | 国产精品xxxx18a99 | www夜夜 | 亚洲最大成人网4388xx | 992tv在线| 久久色在线观看 | 久久只精品99品免费久23小说 | 黄色免费观看 | 欧美日韩久 | av免费在线免费观看 | 亚洲国产精品500在线观看 | 亚洲精品在线一区二区三区 | 午夜私人影院 | 免费av观看 | 久久社区视频 | 中文字幕在线专区 | 国产精品久久久久久影院 | 国产麻豆精品在线观看 | 精品福利片| 夜色资源站wwwcom | 亚洲日韩欧美一区二区在线 | 91成人网在线观看 | 激情五月色播五月 | 丁香视频全集免费观看 | 国产拍在线 | 黄色国产大片 | 最新中文字幕在线资源 | 精品你懂的 | 国产91精品高清一区二区三区 | 亚洲a在线观看 | 日本久久成人中文字幕电影 | 亚洲国产成人精品久久 | 久久av在线播放 | 国产成人99久久亚洲综合精品 | 狠狠狠狠狠狠操 | 国产成人精品亚洲精品 | 婷婷黄色片 | 999精品| 色综合天天狠天天透天天伊人 | 精品久久久免费视频 | 亚州中文av | 色综合久久久久网 | 久草在线中文视频 | 91看片淫黄大片在线播放 | 日本中文字幕电影在线免费观看 | 91精品欧美| 西西444www大胆高清图片 | 在线观看亚洲精品视频 | 久久99操 | av在线不卡观看 | 亚洲乱码国产乱码精品天美传媒 | 97高清免费视频 | 四虎在线免费观看 | www99久久 | 国产韩国日本高清视频 | 欧美色图88 | 亚洲国产黄色 | 在线观看视频在线观看 | 成 人 黄 色 视频 免费观看 | 国产91免费在线 | 成年人在线电影 | 日本午夜免费福利视频 | 伊人五月天综合 | 91久草视频 | 久久国产亚洲精品 | 亚洲经典视频 | 亚洲成人黄 | 五月天婷婷免费视频 | 免费日p视频 | 久久不卡日韩美女 | 色先锋av资源中文字幕 | 久草视频免费在线观看 | 亚洲美女精品区人人人人 | 久久99精品久久久久久秒播蜜臀 | 在线视频精品播放 | 国产特级毛片 | 91av在线免费看 | 在线免费看黄网站 | 国产精品久久久精品 | 免费www视频 | 亚洲国产精彩中文乱码av | 天天射夜夜爽 | 亚洲一区久久 | 久久久久在线视频 | 91免费观看国产 | 午夜精品av在线 | 国产麻豆精品久久一二三 | 中文字幕国内精品 | 久久99网站 | 欧美成人h版在线观看 | 久艹视频在线免费观看 | 国产亲近乱来精品 | 特级西西444www大精品视频免费看 | 久久激情电影 | 天天干天天想 | 国产精品毛片完整版 | 亚洲三级黄 | 91男人影院 | 日韩视频三区 | 美女中文字幕 | 亚洲最新在线 | 国产日韩视频在线观看 | 欧美一区二区精品在线 | 黄色免费视频在线观看 | 中文字幕在线观看国产 | 久草在线免费播放 | 国产亚洲精品久久久久久久久久 | 激情视频免费在线 | 国产一区二区三区免费观看视频 | 久久精品国产亚洲精品 | 亚洲天堂网视频 | 久久伦理电影网 | 亚洲理论片在线观看 | 又污又黄的网站 | 精品亚洲免a | 欧美va天堂va视频va在线 | www欧美色| 99热这里有 | 一区精品久久 | 日日草视频 | 麻豆超碰 | 国产欧美综合视频 | 国产精品手机在线观看 | 在线 视频 一区二区 | 99热国产在线观看 | 久久深夜 | 久久无码av一区二区三区电影网 | 黄色成人影院 | 国产婷婷 | 激情片av| 99视频久| 色综合久久久久综合 | 在线一区二区三区 | 国产一区免费 | a久久久久 | 亚洲欧美日本国产 | 国产亚洲成人精品 | 国产黄色片久久久 | 色射色| 一区二区三区精品在线 | 国产69精品久久久久久久久久 | 99久久久国产免费 | 黄色毛片一级 | 99re久久资源最新地址 | 国产精品久久久久婷婷 | 日韩av网站在线播放 | 99精品在线免费观看 | 中文字幕国产在线 | 国产美女精彩久久 | 色中色资源站 | 久久精品美女视频 | 正在播放亚洲精品 | 国产美女永久免费 | 婷婷网在线 | 97精品国产91久久久久久 | 亚洲区另类春色综合小说校园片 | 欧美日韩激情视频8区 | 精品一区精品二区 | 国产成人免费网站 | 亚洲精品日韩在线观看 | 毛片美女网站 | 久久精品视频网站 | 国产精品久久久久久爽爽爽 | 欧美成人精品xxx | jizz999| 中文字幕91| 欧美精品第一 | 久久综合婷婷综合 | 欧美人人 | 欧美一级视频免费 | 黄色电影网站在线观看 | 99精彩视频在线观看免费 | 在线视频一二区 | 免费看av片网站 | 人人爽人人做 | 国产高清av在线播放 | 欧美一区二视频在线免费观看 | 天天草天天插 | 久久精品精品 | 国产免费区 | 懂色av一区二区三区蜜臀 | 成人免费xxxxxx视频 | 成人av一区二区三区 | 日韩免费av在线 | 亚洲三级黄 | 日本精品二区 | av看片在线 | 久久免费看毛片 | 国产视频精品免费播放 | 婷婷久久精品 | 五月天色综合 | 黄网av在线 | 亚洲清纯国产 | 久久综合给合久久狠狠色 | 91免费观看视频网站 | 免费观看91视频大全 | 9999在线观看 | 狠狠干天天 | 精品国产91亚洲一区二区三区www | 久香蕉| 香蕉在线视频观看 | 亚洲日韩精品欧美一区二区 | 91豆花在线观看 | 在线91观看| 亚洲毛片在线观看. | 欧美日韩精品影院 | 毛片a级片| 亚洲精品国产精品国自产观看浪潮 | 日韩电影在线观看中文字幕 | 日躁夜躁狠狠躁2001 | 亚洲第一区在线播放 | 99久久夜色精品国产亚洲96 | 欧美一区二区精美视频 | 婷婷色在线视频 | 久久久久久久久久免费视频 | 亚洲成人精品 | 中文字幕久久久精品 | 欧美91精品国产自产 | 国产精品国产三级国产不产一地 | 国产高清免费观看 | 亚洲一一在线 | 国产精品6999成人免费视频 | 97精品在线视频 | 国产原创在线观看 | 狠狠色丁香婷综合久久 | 国产精品岛国久久久久久久久红粉 | 日本精a在线观看 | 久久久国产精品电影 | 国产一级视频 | 欧美一区二区免费在线观看 | 久久久国产一区二区三区四区小说 | 超碰97在线看 | 俺要去色综合狠狠 | 综合网成人 | 在线观看国产区 | 日韩欧美在线免费观看 | 在线观看免费一级片 | 黄色免费网站 | 夜夜操天天干, | 夜夜夜夜猛噜噜噜噜噜初音未来 | 91av蜜桃| av成人动漫 | 激情五月激情综合网 | 黄色成人免费电影 | 久久精品久久久久久久 | 国产精品网在线观看 | 亚洲婷婷网 | 98久9在线 | 免费 | 中文字幕有码在线 | 精品国产一区二区三区av性色 | 中文字幕在线观看完整版电影 | 在线观看精品国产 | 99精彩视频| jizz欧美性9| 黄色小说视频在线 | 96视频在线| 亚洲精品97 | 日韩大片免费在线观看 | 在线精品一区二区 | 婷婷综合av | 日韩视频免费 | 成人av一级片 | 国产成人一区二区三区在线观看 | 香蕉视频18 | av网站免费线看精品 | 久久久久97国产 | 天天爽夜夜爽人人爽曰av | 亚洲成av人片一区二区梦乃 | 2021国产精品 | 99综合电影在线视频 | 狠狠色狠狠色综合系列 | 99精品乱码国产在线观看 | 狠狠干干 | 久久人人97超碰国产公开结果 | 久久99在线 | 亚洲自拍偷拍色图 | 日本精品久久 | 国产视频在 | 成人丁香花| 91成人精品一区在线播放69 | 丝袜美腿在线 | 亚洲精品va| 日日干av| 中日韩在线视频 | 久久综合一本 | 在线观看免费色 | 国产成人av福利 | 国产精品成人久久 | 国产精品99爱 | 97成人免费 | 干av在线| 久久久精品一区二区 | 国产日韩在线一区 | 免费看污黄网站 | 国产韩国日本高清视频 | 久久精品亚洲综合专区 | 2023国产精品自产拍在线观看 | 日日干,天天干 | 亚洲国产中文字幕在线 | 黄污视频网站 | 国产99久久久国产精品免费看 | av电影免费看 | 精品国产诱惑 | 日韩精品不卡在线 | 五月天色综合 | 久久久91精品国产一区二区精品 | 在线婷婷| 五月天婷婷丁香花 | 日韩电影一区二区在线 | 久久99精品国产麻豆婷婷 | 青青草久草在线 | 亚洲精品白浆高清久久久久久 | 国产精品精品久久久久久 | 超碰在线人人 | 国产中文字幕一区 | 亚洲爱av| 日韩成人邪恶影片 | 久久成人一区 | 国产成人a亚洲精品 | 国产亚洲精品xxoo | 波多野结衣久久资源 | 日韩av不卡在线 | 97精品超碰一区二区三区 | 99久热在线精品视频成人一区 | 日韩免费看视频 | 天天躁日日 | 国产精品美女 | 999久久精品| 网站你懂的 | 久久久久久久av麻豆果冻 | 欧美日韩另类在线观看 | 欧美999 | 中文字幕在线久一本久 | 国产精品毛片一区视频播 | 精品国产乱码久久久久久1区2匹 | 日日夜夜网 | 天天色播 | 国产精品美女久久久久aⅴ 干干夜夜 | 黄色成人免费电影 | 国产黄色一级片 | 日韩欧美综合精品 | 国产精品久久久久久久久大全 | 日韩在线观看的 | 91亚洲影院| 亚洲一区二区三区毛片 | 国产午夜精品福利视频 | 日韩久久精品一区二区三区下载 | 亚洲精品一区二区三区四区高清 | 麻豆精品视频 | 午夜久久久久 | 国产亚洲婷婷免费 | 97av超碰 | 欧美成人91 | 六月婷婷色 | 国产高清免费在线播放 | 久久久久久久影院 | 日日骑| 日韩电影在线一区 | 中文字幕一区二区在线观看 | 国产999| 一区二区视频在线免费观看 | 99久久99久久精品国产片果冰 | 国产91丝袜在线播放动漫 | 久久成人国产精品入口 | 在线观看视频一区二区 | 国内精品久久久久影院优 | 日韩理论在线播放 | 国产精品欧美激情在线观看 | 国产成人三级在线播放 | 又黄又刺激视频 | 日韩免费av网址 | 伊人影院av | 国产中文伊人 | 亚洲成人av片在线观看 | 日韩女同一区二区三区在线观看 | 精品无人国产偷自产在线 | 欧美久久久久久久久久久 | 亚洲国产片色 | 精品视频区 | 久久久久久欧美二区电影网 | 国产专区精品 | 日韩资源在线播放 | 黄色成人影院 | 碰超人人 | 国产精品99久久久精品免费观看 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 深爱综合网 | 久久免费视频网站 | 特级西西444www大精品视频免费看 | 91在线你懂的 | 国产伦精品一区二区三区免费 | 黄色毛片一级 | 久久毛片网 | 成人91在线观看 | 99久久久国产精品免费99 | 99久久婷婷国产综合精品 | 在线免费色视频 | 久久久久久久久久久影视 | 久久最新网址 | 精品久久久久亚洲 | 亚洲免费观看在线视频 | 国产97色在线 | 中文字幕欧美三区 | 亚洲欧美怡红院 | 精品96久久久久久中文字幕无 | 日韩簧片在线观看 | 91精品在线麻豆 | 久久久96| 亚洲国产精品成人va在线观看 | 97在线精品视频 | 免费av片在线 | 精品乱码一区二区三四区 | 天天色天天射天天操 | 免费精品国产va自在自线 | 日韩精品一区二区在线观看视频 | 天天操天天透 | 欧美精品v国产精品v日韩精品 | 毛片一二区| 日韩美在线 | 成人三级视频 | 欧美少妇bbwhd| 国产视频黄 | 美女视频网站久久 | 国产精品99久久久久久久久 | 午夜影院先 | 日韩精品一区二区三区外面 | 在线观看av中文字幕 | 99久久久国产精品 | 91在线免费视频观看 | 国产99在线| 五月婷婷爱 | 日本最新高清不卡中文字幕 | 美女网站黄免费 | 美女网站在线观看 | 9色在线视频 | 操操碰 | 欧美另类tv| 国产在线观看免费av | 欧美人人| 久久精品日本啪啪涩涩 | 亚洲永久精品在线 | 韩国三级一区 | 免费视频一区 | 免费国产ww | 狠狠干天天| 日韩中文字 | 麻豆一区在线观看 | 一区二区三区免费在线观看 | 色国产精品 | 在线看片日韩 | 99在线热播 | 中文字幕精品一区二区三区电影 | 92av视频| 午夜在线国产 | 国产91精品久久久久 | 婷婷丁香激情五月 | 手机成人免费视频 | 三级黄色a | 色狠狠干 | 国产91大片 | 欧美国产精品久久久久久免费 | 天天干天天干天天干天天干天天干天天干 | 久草在线免费电影 | 久久久久这里只有精品 | 人人爽人人爽人人片av免 | 国产精品久久久久久吹潮天美传媒 | 日本精品一区二区三区在线观看 | 婷婷去俺也去六月色 | 亚洲二区精品 | av导航福利 | 国产精品网红福利 | 99这里精品 | 91av在线免费观看 | 日韩免费高清在线观看 | 美女性爽视频国产免费app | 三级动态视频在线观看 | 一区二区三区影院 | 国产精品麻| 在线观看视频你懂得 | 欧美高清视频不卡网 | 中文字幕免费成人 | 久久社区视频 | 色999视频 | 久久久久亚洲天堂 | 93久久精品日日躁夜夜躁欧美 | 8x成人在线 | 五月婷婷开心中文字幕 | 亚洲综合导航 | 男女激情免费网站 | 国产va精品免费观看 | 日韩在线视频精品 | 日韩av午夜| 最新色站 | 狠狠插狠狠干 | 日本黄色大片儿 | 国产高清久久久 | 99人久久精品视频最新地址 | 亚洲综合国产精品 | 精品亚洲成a人在线观看 | 欧美另类高清 videos | 国产精品激情在线观看 | 亚洲一级久久 | 久久精彩视频 | 亚洲精品h | 最近更新中文字幕 | 成人小视频在线观看免费 | 日韩欧美视频在线 | 精品国产视频一区 | 国产精品福利久久久 | 久久精品一区 | 亚洲精品高清一区二区三区四区 | 亚洲最新视频在线播放 | 国产精品不卡视频 | 美女视频久久黄 | 久久精品亚洲综合专区 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 中文字幕一区2区3区 | 国产精品视频永久免费播放 | 美女在线观看网站 | 夜夜躁天天躁很躁波 | 香蕉免费 | 亚洲 欧美 成人 | 日韩一级黄色大片 | 97操操| 久草免费在线视频 | 国产原创中文在线 | 日韩高清国产精品 | 中文字幕色综合网 | 欧美日韩后 | 超碰在线网 | 亚洲精品伦理在线 | 最近中文字幕免费 | 狠狠干狠狠艹 | 欧美精品久久久久a | 久久久亚洲精华液 | 国产91欧美| 中文字幕在线影院 | 九九亚洲视频 | 黄色毛片大全 | 国产亚洲成av人片在线观看桃 | 亚洲精品视频在线观看免费视频 | 日韩精品一区二区三区在线视频 | 久久国产精品网站 | 日韩黄色网络 | 日韩免费在线 | 九九视频热 | 亚洲欧美视频在线播放 | 天天综合视频在线观看 | 综合av在线| 午夜精品久久久久久 | 波多野结衣精品 | 国产露脸91国语对白 | 五月天丁香综合 | 久精品视频在线 | 丁香激情网 | 深夜激情影院 | 97超碰人人模人人人爽人人爱 | 精品国产一区二 | 少妇bbw撒尿 | www.成人sex | 国产人成在线视频 | 日日夜夜噜噜噜 | 精品久久福利 | 中文区中文字幕免费看 | 日韩专区在线播放 | 欧美福利视频一区 | 天天干天天干天天操 | 久久草草热国产精品直播 | 日韩成人黄色av | 国产无套精品久久久久久 | 久久免费视频精品 | 色资源中文字幕 | 在线观看激情av | 天天色天天操综合网 | 精品一区二区亚洲 | 婷婷色吧 | 91av在线视频免费观看 | av在线播放观看 | 狠狠躁夜夜躁人人爽超碰91 | 亚洲永久国产精品 | 国产网红在线观看 | 久久精品这里热有精品 | 日日爱av| 午夜av激情 | 成人福利在线观看 | 精品一区二区亚洲 | 日日干夜夜骑 | 国产一区二区三区久久久 | 久久久久久在线观看 | 中文字幕在线视频免费播放 | 免费日韩 精品中文字幕视频在线 | 日韩精品一区二区三区水蜜桃 | 久草在线手机观看 | 婷婷5月色 | 日本精品va在线观看 | 亚州av一区 | 中文在线最新版天堂 | 国产日韩精品视频 | 欧美经典久久 | www久久国产 | 久久精品网站免费观看 | 中文字幕区 | 久久久久久久久久久精 | 国产成人精品亚洲日本在线观看 | 激情黄色av| 黄色一及电影 | 狠狠色噜噜狠狠狠狠 | 97在线观看免费高清完整版在线观看 | 国产黄影院色大全免费 | 日韩视频免费观看高清完整版在线 | 美女免费黄网站 | 欧美在线a视频 | 色com | 久久精品视频免费观看 | 日韩一区二区免费视频 | 久久久久女人精品毛片九一 | 欧美精品三级在线观看 | 在线高清av| 成人h在线播放 | 国产不卡在线视频 | 日韩精品视频免费专区在线播放 | 一级成人免费视频 | 四川bbb搡bbb爽爽视频 | 91黄视频在线观看 | 99爱这里只有精品 | 精品国产一区二区三区久久久 | 欧洲精品久久久久毛片完整版 | 欧美在线久久 | 国产成人一区二区在线观看 | 精品国产伦一区二区三区免费 | 探花视频免费观看 | 久久免费精彩视频 | 久久久伦理| 人人看97 | 天堂av免费观看 | 国产精品黑丝在线观看 | 日韩特级毛片 | 天天操天天操天天操天天 | 国产精品国产三级国产专区53 | 亚洲成人999 | 91人人爱 | 精品久久久一区二区 | 欧美福利片在线观看 | 黄色一级免费 | 久久精品免视看 | 最近中文字幕大全中文字幕免费 | 在线国产中文字幕 | 91视频电影| 日本韩国精品在线 | 成人精品亚洲 | 久草久视频 | 亚洲人在线视频 | 玖玖在线观看视频 | 色狠狠婷婷 | 精品欧美小视频在线观看 | 夜色资源网 | 手机在线日韩视频 | 久久 地址 | 91在线影视 | 看av免费网站 | www.午夜色.com| av中文字幕电影 | 麻豆系列在线观看 | 午夜美女福利 | 日韩av快播电影网 | 国产精品毛片一区二区在线 | 国产午夜精品一区二区三区 | 久久99热这里只有精品 | 亚洲精品小视频 | a特级毛片 | 伊人成人久久 | 国产精品亚洲人在线观看 | 久久久久国产一区二区 | 手机av网站| 中文字幕日韩国产 | 色婷婷亚洲 | 99精品视频观看 | 国产视频在线观看一区 | 国产精品99久久久久久人免费 | 九九热.com| 日韩免费一级a毛片在线播放一级 | 91手机在线看片 | 久久久久影视 | 国产欧美最新羞羞视频在线观看 | 日日干天天爽 | 国内精品久久久久久久影视麻豆 | 国产亚洲精品久久久久久久久久 | 日韩免费看片 | 精品国产伦一区二区三区观看说明 | 日韩欧美视频二区 | 婷婷丁香激情五月 | 久久影视网 | 国产拍在线 | 亚洲黄a| 三级av中文字幕 | 麻豆一级视频 | 97超碰精品| 亚洲一区动漫 | 欧美精品久久久久久久亚洲调教 | 天天操天天干天天操天天干 | 午夜精品久久久久久久久久久久久久 | 91看毛片 | 日韩av一区二区在线 | 久久热首页 | 欧美日韩国产一二三区 | 一级黄色片在线观看 | 亚洲第一成网站 | 亚洲天天 | 91成人看片 | 九九九九精品九九九九 | 最新中文字幕在线观看视频 | 中文乱码视频在线观看 | av在线播放免费 | 欧美人体xx| 久久久精品久久日韩一区综合 | 制服丝袜一区二区 | 中文字幕在线看视频国产 | 综合久色 | 国产高清免费视频 |