Android近場通訊 NFC基礎(二)

2021-06-25 10:46:49 字數 2013 閱讀 8052

**:

應用程式如何排程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.  在元素中宣告訪問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訊息推送給其他裝置的方法。

android:minsdkversion

="10"

/>

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

android:name

="android.hardware.nfc"

android:required

="true"

/>

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

Android近場通訊 NFC基礎(四)

從intent中獲取資訊 如果因為nfc的intent而啟動乙個activity,那麼你就能夠從intent中獲取被掃瞄到的nfc標籤的相關資訊。根據被掃瞄到的標籤,intent物件能夠以下額外的資訊 1.extra tag 必須的 它是乙個代表了被掃瞄到的標籤的 tag物件 2.extra nde...

Android近場通訊 高階NFC(一)

本文譯自 本文介紹一些高階的nfc專題,如多樣的nfc標籤技術 編寫nfc標籤 以及前台排程,前台排程允許在前台的應用程式優先排程intent事件,即使還有其他的過濾同樣的intent事件的應用程式存在。android所支援的nfc標籤技術 在使用nfc標籤和android裝置來進行工作的時候,使用...

NFC近場通訊,NFC列印開發

在進行nfc列印時我們先要了解印表機的屬性,本文中印表機以exp342為標準進行編寫整合技術文件。exp342的部分設定請參考該產品的使用說明書。我們在進行android整合開發時需要注意印表機的黑標感應點的位置,確定列印紙張黑標是否完全覆蓋印表機黑標感應點,如果未完全覆蓋將會導致列印紙不能走到你預...