public final class NfcV
extends Object
implements TagTechnology
java.lang.Object | |
↳ | android.nfc.tech.NfcV |
提供对 Tag
上的NFC-V(ISO 15693)属性和I / O操作的 Tag
。
主要的NFC-V I / O操作是transceive(byte[])
。 应用程序必须在transceive(byte[])
之上实现自己的协议栈。
注意:执行I / O操作的方法需要 NFC
权限。
Public methods |
|
---|---|
void |
close() 禁止对来自此 |
void |
connect() 对来自此 |
static NfcV |
get(Tag tag) 为给定标签获取 |
byte |
getDsfId() 从标签发现中返回DSF ID字节。 |
int |
getMaxTransceiveLength() 返回可以用 |
byte |
getResponseFlags() 从标签发现中返回响应标志字节。 |
Tag |
getTag() 获取 |
boolean |
isConnected() 帮助者指出I / O操作是否可行。 |
byte[] |
transceive(byte[] data) 将原始NFC-V命令发送到标签并接收响应。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
|
From interface android.nfc.tech.TagTechnology
|
|
From interface java.io.Closeable
|
|
From interface java.lang.AutoCloseable
|
void close ()
禁止对来自此 TagTechnology
对象的标记执行I / O操作,并释放资源。
也会导致其他线程上的所有被阻止的I / O操作被取消,并返回 IOException
。
需要 NFC
权限。
Throws | |
---|---|
IOException |
void connect ()
从此 TagTechnology
对象启用对标记的I / O操作。
可能导致RF活动并可能阻塞。 不能从主应用程序线程调用。 通过从另一个线程调用close()
,被阻止的呼叫将被IOException
取消。
一次只能将一个 TagTechnology
对象连接到 Tag
。
当I / O操作完成时,应用程序必须调用 close()
。
需要 NFC
权限。
Throws | |
---|---|
IOException |
NfcV get (Tag tag)
获取给定标签的实例 NfcV
。
如果未在getTechList()
枚举NfcV
则返回null。 这表明该标签不支持NFC-V。
不会导致任何RF活动并且不会阻止。
Parameters | |
---|---|
tag |
Tag : an NFC-V compatible tag |
Returns | |
---|---|
NfcV |
NFC-V object |
byte getDsfId ()
从标签发现中返回DSF ID字节。
不会导致任何RF活动并且不会阻止。
Returns | |
---|---|
byte |
DSF ID bytes |
int getMaxTransceiveLength ()
返回可用 transceive(byte[])
发送的最大字节数。
Returns | |
---|---|
int |
the maximum number of bytes that can be sent with transceive(byte[]) . |
byte getResponseFlags ()
从标签发现中返回响应标志字节。
不会导致任何RF活动并且不会阻止。
Returns | |
---|---|
byte |
Response Flag bytes |
Tag getTag ()
获取 Tag
对象支持此 TagTechnology
对象。
Returns | |
---|---|
Tag |
the Tag backing this TagTechnology object. |
boolean isConnected ()
帮助者指出I / O操作是否可行。
如果返回true connect()
已经完成,并 close()
没有被调用,并且 Tag
不知道是超出范围。
不会导致射频活动,也不会阻止。
Returns | |
---|---|
boolean |
true if I/O operations should be possible |
byte[] transceive (byte[] data)
将原始NFC-V命令发送到标签并接收响应。
应用程序不能将CRC附加到有效负载,它将自动计算。 该应用程序确实提供了FLAGS,CMD和PARAMETER字节。
使用 getMaxTransceiveLength()
检索可以使用 getMaxTransceiveLength()
发送的最大字节 transceive(byte[])
。
这是一个I / O操作,将阻塞直到完成。 它不能从主应用程序线程调用。 如果从另一个线程调用close()
被阻止的呼叫将被IOException
取消。
需要 NFC
权限。
Parameters | |
---|---|
data |
byte : bytes to send |
Returns | |
---|---|
byte[] |
bytes received in response |
Throws | |
---|---|
|
if the tag leaves the field |
IOException |
if there is an I/O failure, or this operation is canceled |