Tag 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
代表已發現的 NFC 標籤。
[Android.Runtime.Register("android/nfc/Tag", DoNotGenerateAcw=true)]
public sealed class Tag : Java.Lang.Object, Android.OS.IParcelable, IDisposable
[<Android.Runtime.Register("android/nfc/Tag", DoNotGenerateAcw=true)>]
type Tag = class
inherit Object
interface IParcelable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 繼承
- 屬性
- 實作
備註
代表已發現的 NFC 標籤。
Tag 是一個不可變的物件,代表發現時NFC標籤的狀態。 它可以作為類別的代碼 TagTechnology 來執行進階操作,或透過 #getId 直接查詢其 ID 及其所包含 #getTechList的技術集合。 這個類別傳入並回傳的陣列都是 <em>not</> em cloneed,所以要小心不要修改它們。
每當發現(進入範圍)標籤時,都會建立一個新的標籤物件,即使該標籤是相同的實體標籤。 如果標籤被移除後再回到範圍,則只有最新的標籤物件才能成功建立 TagTechnology。
<h3>標籤派遣</h3> 當發現標籤時,Tag會建立一個物件,並透過 NfcAdapter#EXTRA_TAG via android.content.Intent中的Context#startActivity額外 。 採用四階段調度來選擇最適合處理標籤的活動。 Android 作業系統依序執行每個階段,並在找到單一匹配活動後立即完成派遣。 若在同一階段發現多個匹配活動,則顯示 Android 活動選擇器對話框,讓使用者選擇該活動以接收標籤。
標籤調度機制的設計目的是讓標籤有高機率被派遣到正確的活動,且不會顯示使用者活動選擇器對話框。 這對 NFC 互動很重要,因為 NFC 互動非常短暫——如果使用者必須移動 Android 裝置來選擇應用程式,連線很可能會中斷。
<H4>1。 前景活動派遣</h4> 已呼叫 NfcAdapter#enableForegroundDispatch NfcAdapter.enableForegroundDispatch() 的前景活動被賦予優先權。 請參閱相關 NfcAdapter#enableForegroundDispatch NfcAdapter.enableForegroundDispatch() 文件了解其使用情況。
<H4>2. NDEF 資料 dispatch</h4> 若標籤包含 NDEF 資料,系統會 NdefRecord 檢查第一個 NdefMessage。 若記錄為 URI,SmartPoster 或 MIME 資料Context#startActivity會以 呼叫。NfcAdapter#ACTION_NDEF_DISCOVERED 對於 URI 和 SmartPoster 紀錄,URI 會被放入意圖的資料欄位。 對於 MIME 紀錄,MIME 類型會放在意圖的類型欄位中。 這讓活動註冊時,只有在標籤上有他們知道如何處理的資料時才會啟動。 這是處理標籤資料的首選方式,因為 NDEF 資料可以儲存在多種標籤上,且不依賴特定標籤技術。 如需詳細資訊,請參閱NfcAdapter#ACTION_NDEF_DISCOVERED。 若標籤不包含 NDEF 資料,或沒有註冊 NfcAdapter#ACTION_NDEF_DISCOVERED 與相符資料 URI 或 MIME 類型的活動,則派遣進入第三階段。
<H4>3. 標籤技術派遣</h4>Context#startActivity 被呼叫 NfcAdapter#ACTION_TECH_DISCOVERED ,將標籤派遣到能處理標籤上技術的活動。 技術定義為 的 TagTechnology子類別,詳見套件 android.nfc.tech。 Android 作業系統會尋找能在標籤中處理一項或多項技術的活動。 如需詳細資訊,請參閱NfcAdapter#ACTION_TECH_DISCOVERED。
<H4>4. 備用派遣</h4> 若未匹配任何活動,則 Context#startActivity 以 呼叫 NfcAdapter#ACTION_TAG_DISCOVERED。 這是作為備用機制。 參見 NfcAdapter#ACTION_TAG_DISCOVERED。
<h3>NFC 標籤背景</h3> NFC 標籤是一種被動式 NFC 裝置,當該 Android 裝置在範圍內時,會由其 NFC 場供電。 標籤可以有多種形式,例如貼紙、卡片、鑰匙扣,甚至嵌入更先進的裝置中。
標籤可以具備廣泛的功能。 簡單標籤只是提供讀寫語意,並包含一些一次性可程式化的區域,讓它成為唯讀。 較複雜的標籤則提供數學運算及逐區存取控制與認證。 最先進的標籤包含可與執行在標籤上的程式碼進行複雜互動的操作環境。 利用 TagTechnology 類別存取 NFC 標籤中可具備的廣泛功能。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
屬性
| 名稱 | Description |
|---|---|
| Class |
回傳此 |
| Creator | |
| Handle |
底層 Android 實例的帳號。 (繼承來源 Object) |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
代表已發現的 NFC 標籤。 (繼承來源 JavaObject) |
| JniPeerMembers |
代表已發現的 NFC 標籤。 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| ThresholdClass |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 (繼承來源 Object) |
| ThresholdType |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 (繼承來源 Object) |
方法
| 名稱 | Description |
|---|---|
| Clone() |
建立並回傳此物件的副本。 (繼承來源 Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
代表已發現的 NFC 標籤。 (繼承來源 JavaObject) |
| DescribeContents() |
描述此 Parcelable 的組建表示中包含的特殊物件種類。 |
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
代表已發現的 NFC 標籤。 (繼承來源 JavaObject) |
| Equals(Object) |
代表已發現的 NFC 標籤。 (繼承來源 JavaObject) |
| Equals(Object) |
表示是否有其他物體「等同」於此物。 (繼承來源 Object) |
| GetHashCode() |
回傳物件的雜湊碼值。 (繼承來源 Object) |
| GetId() |
取得標籤識別碼(如果有的話)。 |
| GetTechList() |
在此標籤中取得可用的技術,作為完全合格的類別名稱。 |
| JavaFinalize() |
已淘汰.
當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。 (繼承來源 Object) |
| Notify() |
喚醒一個正在該物件監視器上等待的執行緒。 (繼承來源 Object) |
| NotifyAll() |
喚醒所有等待該物件監視器的執行緒。 (繼承來源 Object) |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
代表已發現的 NFC 標籤。 (繼承來源 JavaObject) |
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToString() |
回傳物件的字串表示。 (繼承來源 Object) |
| UnregisterFromRuntime() |
將此 Java 節點從互通執行時中取消註冊。 (繼承來源 Object) |
| Wait() |
導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。 (繼承來源 Object) |
| Wait(Int64, Int32) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| Wait(Int64) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| WriteToParcel(Parcel, ParcelableWriteFlags) |
把這個物體壓扁成一個包裹。 |
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
代表已發現的 NFC 標籤。 (繼承來源 JavaObject) |
| IJavaPeerable.Finalized() |
代表已發現的 NFC 標籤。 (繼承來源 JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
代表已發現的 NFC 標籤。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
代表已發現的 NFC 標籤。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
代表已發現的 NFC 標籤。 (繼承來源 JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
代表已發現的 NFC 標籤。 (繼承來源 JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
代表已發現的 NFC 標籤。 |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
代表已發現的 NFC 標籤。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |