Tag 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示已发现的 NFC 标记。
[Android.Runtime.Register("android/nfc/Tag", DoNotGenerateAcw=true)]
public sealed class Tag : Java.Lang.Object, Android.OS.IParcelable, IDisposable, Java.Interop.IJavaPeerable
[<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
以执行高级操作,或通过 直接查询其 ID#getId
,以及它包含的一组技术。#getTechList
传递给此类并由此类返回的数组是 <<em>/em> 克隆的,因此请注意不要修改它们。
每次发现标记 (进入范围) 时,都会创建新标记对象,即使它是同一个物理标记。 如果删除了标记,然后返回到范围中,则只能成功使用最新的标记对象来创建 TagTechnology
。
<h3>标记调度</h3> 发现标记时,Tag
将通过 中的android.content.Intent
Context#startActivity
额外 项创建对象并将其传递给单个活动NfcAdapter#EXTRA_TAG
。 四阶段调度用于选择最合适的活动来处理标记。 Android OS 按顺序执行每个阶段,并在找到单个匹配活动后立即完成调度。 如果在任何一个阶段找到多个匹配的活动,则显示 Android 活动选择器对话框,以允许用户选择要接收标记的活动。
标记调度机制旨在提供将标记调度到正确活动而不向用户显示活动选择器对话框的高概率。 这对于 NFC 交互非常重要,因为它们非常暂时性 -- 如果用户必须移动 Android 设备才能选择应用程序,则连接可能会中断。
<h4>1. 前台活动调度</h4> 已调用 NfcAdapter#enableForegroundDispatch NfcAdapter.enableForegroundDispatch()
的前景活动优先。 有关其用法,请参阅 上的 NfcAdapter#enableForegroundDispatch NfcAdapter.enableForegroundDispatch()
文档。 <h4>2. NDEF 数据调度</h4> 如果标记包含 NDEF 数据,系统会检查第一个 中的第一 NdefRecord
个 NdefMessage
。 如果记录是 URI,则使用 NfcAdapter#ACTION_NDEF_DISCOVERED
调用 SmartPoster 或 MIME 数据Context#startActivity
。 对于 URI 和 SmartPoster 记录,URI 将放入意向的数据字段中。 对于 MIME 记录,MIME 类型将放入意向的类型字段中。 这样,仅当标记上存在他们知道如何处理的数据时,活动才能启动注册。 这是处理标记上数据的首选方法,因为 NDEF 数据可以存储在许多类型的标记上,并且不依赖于特定的标记技术。 有关详细信息,请参阅 NfcAdapter#ACTION_NDEF_DISCOVERED
。 如果标记不包含 NDEF 数据,或者未使用 NfcAdapter#ACTION_NDEF_DISCOVERED
匹配的数据 URI 或 MIME 类型注册任何活动,则调度将移动到阶段 3。 <h4>3. 使用 NfcAdapter#ACTION_TECH_DISCOVERED
调用标记技术调度</h4>Context#startActivity
以将标记调度到可以处理标记上存在的技术的活动。 技术定义为 的 TagTechnology
子类,请参阅 包 android.nfc.tech
。 Android OS 查找可以处理标记中的一个或多个技术的活动。 有关详细信息,请参阅 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 标记中可用的各种功能。
此页面的部分内容是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的术语使用。
属性
Class |
返回此 |
Creator | |
Handle |
基础 Android 实例的句柄。 (继承自 Object) |
JniIdentityHashCode |
表示已发现的 NFC 标记。 (继承自 Object) |
JniPeerMembers |
表示已发现的 NFC 标记。 |
PeerReference |
表示已发现的 NFC 标记。 (继承自 Object) |
ThresholdClass |
此 API 支持 Mono for Android 基础结构,不应直接从代码使用。 (继承自 Object) |
ThresholdType |
此 API 支持 Mono for Android 基础结构,不应直接从代码使用。 (继承自 Object) |
方法
Clone() |
创建并返回此对象的副本。 (继承自 Object) |
DescribeContents() |
描述此 Parcelable 封送表示形式中包含的特殊对象类型。 |
Dispose() |
表示已发现的 NFC 标记。 (继承自 Object) |
Dispose(Boolean) |
表示已发现的 NFC 标记。 (继承自 Object) |
Equals(Object) |
指示其他某个对象是否“等于”此对象。 (继承自 Object) |
GetHashCode() |
返回对象的哈希代码值。 (继承自 Object) |
GetId() |
获取标记标识符 ((如果具有一个) )。 |
GetTechList() |
获取此标记中可用的技术,作为完全限定的类名。 |
JavaFinalize() |
当垃圾回收确定不再引用对象时,由对象上的垃圾回收器调用。 (继承自 Object) |
Notify() |
唤醒正在等待此对象的监视器的单个线程。 (继承自 Object) |
NotifyAll() |
唤醒正在等待此对象的监视器的所有线程。 (继承自 Object) |
SetHandle(IntPtr, JniHandleOwnership) |
设置 Handle 属性。 (继承自 Object) |
ToArray<T>() |
表示已发现的 NFC 标记。 (继承自 Object) |
ToString() |
返回对象的字符串表示形式。 (继承自 Object) |
UnregisterFromRuntime() |
表示已发现的 NFC 标记。 (继承自 Object) |
Wait() |
导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>。<> (继承自 Object) |
Wait(Int64) |
导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<> (继承自 Object) |
Wait(Int64, Int32) |
导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<> (继承自 Object) |
WriteToParcel(Parcel, ParcelableWriteFlags) |
将此对象平展为包裹。 |
显式接口实现
IJavaPeerable.Disposed() |
表示已发现的 NFC 标记。 (继承自 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
表示已发现的 NFC 标记。 (继承自 Object) |
IJavaPeerable.Finalized() |
表示已发现的 NFC 标记。 (继承自 Object) |
IJavaPeerable.JniManagedPeerState |
表示已发现的 NFC 标记。 (继承自 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
表示已发现的 NFC 标记。 (继承自 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
表示已发现的 NFC 标记。 (继承自 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
表示已发现的 NFC 标记。 (继承自 Object) |
扩展方法
JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
JavaCast<TResult>(IJavaObject) |
表示已发现的 NFC 标记。 |
GetJniTypeName(IJavaPeerable) |
表示已发现的 NFC 标记。 |