Android近距離無線通訊---NFC基礎(二)

來源:互聯網
上載者:User

標籤:

轉自 http://blog.csdn.net/think_soft/article/details/8171256

 

應用程式如何調度NFC標籤

當標籤調度系統完成對NFC標籤和它的標識資訊封裝的Intent對象的建立時,它會把該Intent對象發送給感興趣的應用程式。如果有多個應用程式能夠處理該Intent對象,就會顯示Activity選取器,讓使用者選擇Activity。標籤調度系統定義了三種Intent對象,以下按照由高到低的優先順序列出這三種Intent對象:

1.  ACTION_NDEF_DISCOVERED:這種Intent用於啟動包含NDEF負載和已知類型的標籤的Activity。這是最高優先順序的Intent,並且標籤調度系統在任何其他Intent之前,都會儘可能的嘗試使用這種類型的Intent來啟動Activity。

2.  ACTION_TECH_DISCOVERED:如果沒有註冊處理ACTION_NDEF_DISCOVERED類型的Intent的Activity,那麼標籤調度系統會嘗試使用這種類型的Intent來啟動應用程式。如果被掃描到的標籤包含了不能被映射到MIME類型或URI的NDEF資料,或者沒有包含NDEF資料,但是是已知的標籤技術,那麼也會直接啟動這種類型的Intent對象(而不是先啟動ACTION_NDEF_DISCOVERED類型的Intent)

3.  ACTION_TAB_DISCOVERED:如果沒有處理ACTION_NDEF_DISCOVERED或ACTION_TECH_DISCOVERED類型Intent的Activity,就會啟動這種類型的Intent。

 

標籤調度系統的基本工作方法如下:

1.  用解析NFC標籤時由標籤調度系統建立的Intent對象(ACTION_NDEF_DISCOVERED或ACTION_TECH_DISCOVERED)來嘗試啟動Activity;

2.  如果沒有對應的處理Intent的Activity,那麼就會嘗試使用下一個優先順序的Intent(ACTION_TECH_DISCOVERED或ACTION_TAG_DISCOVERED)來啟動Activity,直到有對應的應用程式來處理這個Intent,或者是直到標籤調度系統嘗試了所有可能的Intent。

3.  如果沒有應用程式來處理任何類型的Intent,那麼就不做任何事情。

圖1.標籤調度系統

在可能的情況下,都會使用NDEF訊息和ACTION_NDEF_DISCOVERED類型的Intent來工作,因為它是這三種Intent中最標準的。這種Intent與其他兩種Intent相比,它會允許你在更加合適的時機來啟動你的應用程式,從而給使用者帶來更好的體驗。

 

在Android的Manifest中申請NFC訪問

在訪問裝置的NFC硬體和正確的處理NFC的Intent之前,要在AndroidManifest.xml檔案中進行以下聲明:

1.  在<uses-permission>元素中聲明訪問NFC硬體:

<uses-permission android:name="android.permission.NFC" />

2.  你的應用程式所支援的最小的SDK版本。API Level 9隻通過ACTION_TAG_DISCOVERED來支援有限的標籤調度,並且只能通過EXTRA_NDEF_MESSAGES來訪問NDEF訊息。沒有其他的標籤屬性或I/O操作可用。API Level 10中包含了廣泛的讀寫支援,從而更好的推動了NDEF的應用前景,並且API Leve 14用Android Beam和額外的方便的建立NDEF記錄的方法,向外提供了更容易的把NDEF訊息推送給其他裝置的方法。

<uses-sdkandroid:minSdkVersion="10"/>

3.  使用uses-feature元素,在Google Play中,以便你的應用程式能夠只針對有NFC硬體的裝置來顯示。

<uses-featureandroid:name="android.hardware.nfc"android:required="true"/>

如果你的應用程式使用了NFC功能,但是相關的功能又不是你的應用程式的關鍵功能,你可以忽略uses-feature元素,並且要在運行時通過調用getDefaultAdapter()方法來檢查NFC是否有效。

Android近距離無線通訊---NFC基礎(二)(轉)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.