PySide6.QtNfc.QNearFieldTarget

class QNearFieldTarget

QNearFieldTarget 类提供了一个与目标设备通信的接口。More_

PySide6.QtNfc.QNearFieldTarget 的继承图

概要

方法

信号

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

QNearFieldTarget 提供了一个用于与NFC目标设备通信的通用接口。此类支持NFC论坛设备和NFC论坛标签目标。所有特定目标的类都是此类的子类。

type() 函数可用于获取目标设备的类型。uid() 函数返回目标的唯一标识符。从accessMethods() 函数返回的 AccessMethods 标志可以测试以确定目标支持哪些访问方法。

如果目标支持 NdefAccess,可以调用 hasNdefMessage() 来测试目标是否存储了 NDEF 消息,readNdefMessages()writeNdefMessages() 函数可以用来获取和设置 NDEF 消息。

如果目标支持 TagTypeSpecificAccess,可以使用 sendCommand() 向目标发送单个专有命令并获取响应。

class Type

此枚举描述了目标被检测为的标签类型。

常量

描述

QNearFieldTarget.ProprietaryTag

一个未识别的专有目标标签。

QNearFieldTarget.NfcTagType1

一个NFC标签类型1目标。

QNearFieldTarget.NfcTagType2

一个NFC标签类型2目标。

QNearFieldTarget.NfcTagType3

一个NFC标签类型3目标。

QNearFieldTarget.NfcTagType4

一个NFC标签类型4目标。如果NfcTagType4无法通过下面的NfcTagType4A或NfcTagType4B进一步细化,则使用此值。

QNearFieldTarget.NfcTagType4A

基于ISO/IEC 14443-3A的NFC标签类型4目标。

QNearFieldTarget.NfcTagType4B

基于ISO/IEC 14443-3B的NFC标签类型4目标。

QNearFieldTarget.MifareTag

一个Mifare目标。

class AccessMethod

(继承自 enum.Flag) 此枚举描述了近场目标支持的访问方法。

常量

描述

QNearFieldTarget.UnknownAccess

目标支持未知的访问类型。

QNearFieldTarget.NdefAccess

目标支持使用readNdefMessages()writeNdefMessages()读取和写入NDEF消息。

QNearFieldTarget.TagTypeSpecificAccess

目标支持使用sendCommand()发送特定标签类型的命令。

QNearFieldTarget.AnyAccess

目标支持任何已知的访问类型。

class Error

此枚举描述了近场目标报告的错误代码。

常量

描述

QNearFieldTarget.NoError

没有发生错误。

QNearFieldTarget.UnknownError

发生了一个未识别的错误。

QNearFieldTarget.UnsupportedError

此近场目标不支持所请求的操作。

QNearFieldTarget.TargetOutOfRangeError

目标不再在范围内。

QNearFieldTarget.NoResponseError

目标没有响应。

QNearFieldTarget.ChecksumMismatchError

校验和检测到响应已损坏。

QNearFieldTarget.InvalidParametersError

传递了无效的参数给标签类型特定的函数。

QNearFieldTarget.ConnectionError

连接目标失败。

QNearFieldTarget.NdefReadError

未能从目标读取NDEF消息。

QNearFieldTarget.NdefWriteError

无法将NDEF消息写入目标。

QNearFieldTarget.CommandError

未能向目标发送命令。

QNearFieldTarget.TimeoutError

请求无法在waitForRequestCompleted()中指定的时间内完成。

QNearFieldTarget.UnsupportedTargetError

使用的目标不受支持。例如,当客户端应用程序缺少所需的权限和/或隐私设置时,可能会发生这种情况。

__init__([parent=None])
Parameters:

父对象QObject

使用parent构造一个新的近场目标。

accessMethods()
Return type:

AccessMethod的组合

返回此近场目标支持的访问方法。

disconnect()
Return type:

布尔

关闭与目标的连接,以便从不同的实例与目标进行通信。当QNearFieldTarget被销毁时,连接也会关闭。为了处理命令或读取/写入NDEF消息,会(重新)创建与目标设备的连接。

仅当成功关闭现有连接时返回true;否则返回false

disconnected()

当近场目标移出接近范围时,会发出此信号。

error(error, id)
Parameters:

当处理请求id时发生错误时,会发出此信号。error参数描述了错误。

hasNdefMessage()
Return type:

布尔

如果近场目标上至少存储了一条NDEF消息,则返回true;否则返回false

maxCommandLength()
Return type:

整数

返回可以使用sendCommand发送的最大字节数。如果目标不支持发送特定类型的命令,则返回0。

另请参阅

sendCommand()

ndefMessageRead(message)
Parameters:

消息QNdefMessage

当从目标读取到完整的NDEF message 时,会发出此信号。

另请参阅

readNdefMessages()

readNdefMessages()
Return type:

RequestId

开始读取存储在近场目标上的NDEF消息。返回一个请求ID,可用于跟踪请求的完成状态。如果目标不支持读取NDEF消息,将返回一个无效的请求ID。

每个NDEF消息都会发出一个ndefMessageRead()信号。当所有NDEF消息都被读取后,requestCompleted()信号将会发出。如果发生错误,error()信号将会发出。

注意

尝试从处于NFC论坛定义的INITIALIZED状态的标签读取NDEF消息将会失败,并返回NdefReadError,因为该标签已格式化为支持NDEF但尚未包含消息。

requestCompleted(id)
Parameters:

idRequestId

当请求 id 完成时,会发出此信号。

另请参阅

sendCommand()

requestResponse(id)
Parameters:

idRequestId

Return type:

对象

返回请求id的解码响应。如果请求未知或尚未完成,则返回无效的QVariant。

sendCommand(command)
Parameters:

命令QByteArray

Return type:

RequestId

command发送到近场目标。返回一个请求ID,可用于跟踪请求的完成状态。如果目标不支持发送特定类型的标签命令,将返回一个无效的请求ID。

在请求成功完成时,将发出requestCompleted()信号;否则将发出error()信号。

一旦请求成功完成,可以从requestResponse()函数中获取响应。此请求的响应将是一个QByteArray。

type()
Return type:

类型

返回此近场目标的标签类型。

uid()
Return type:

QByteArray

返回近场目标的UID。

注意

在iOS上,此函数对于使用NdefAccess方法发现的近场目标返回一个空的QByteArray。

另请参阅

AccessMethod

waitForRequestCompleted(id[, msecs=5000])
Parameters:
Return type:

布尔

等待请求id完成,最多等待msecs毫秒。如果请求成功完成并且发出了requestCompeted()信号,则返回true;否则返回false

writeNdefMessages(messages)
Parameters:

messages – QNdefMessage 的列表

Return type:

RequestId

messages中的NDEF消息写入目标。返回一个请求ID,可用于跟踪请求的完成状态。如果目标不支持读取NDEF消息,将返回一个无效的请求ID。

当写操作成功完成时,将发出requestCompleted()信号;否则将发出error()信号。

class RequestId

一个请求ID句柄。More_

概要

方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

__init__()

构造一个新的无效请求ID句柄。

__init__(other)
Parameters:

其他RequestId

构造一个新的请求ID句柄,该句柄是other的副本。

isValid()
Return type:

布尔

如果这是一个有效的请求ID,则返回true;否则返回false

__ne__(other)
Parameters:

其他RequestId

Return type:

布尔

__lt__(other)
Parameters:

其他RequestId

Return type:

布尔

__eq__(other)
Parameters:

其他RequestId

Return type:

布尔

refCount()
Return type:

整数

返回请求ID的当前引用计数。