class QNearFieldManager#

QNearFieldManager 类提供了对 NFC 事件的访问。 更多

Inheritance diagram of PySide6.QtNfc.QNearFieldManager

摘要#

方法#

信号#

备注

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

详细描述#

NFC论坛设备支持两种通信模式。第一种模式,对等通信,用于在两个NFC论坛设备之间进行通信。第二种模式,主从通信,用于在NFC论坛设备与NFC论坛标签或非接触式卡之间进行通信。《code class="xref py py-meth docutils literal notranslate">targetDetected()》信号在目标设备进入通信范围时发出。可以从与此信号连接的槽中发起通信。

NFC论坛设备通常在主从通信中作为主设备操作。某些设备还可以作为从设备操作,即所谓的卡仿真模式。在此模式下,本地NFC设备仿真NFC论坛标签或非接触式卡。

应用程序可以连接到code class="xref py py-meth docutils literal notranslate">targetDetected()和code class="xref py py-meth docutils literal notranslate">targetLost()信号,在NFC论坛标签进入或离开近距离时收到通知。在发出这些信号之前,必须使用code class="xref py py-meth docutils literal notranslate">startTargetDetection()函数启动目标检测。可以使用code class="xref py py-meth docutils literal notranslate">stopTargetDetection()函数停止目标检测。当不再需要目标时,应该删除目标,因为其他应用程序可能无法访问该目标。

AdapterState#

此枚举描述了NFC适配器可能具有的不同状态。

常数

描述

QNearFieldManager.AdapterState.Offline

NFC适配器离线。

QNearFieldManager.AdapterState.TurningOn

NFC适配器正在开机。

QNearFieldManager.AdapterState.Online

NFC适配器已开机。

QNearFieldManager.AdapterState.TurningOff

NFC适配器正在关机。

__init__([parent=None])#
参数:

父对象QObject

使用《code class="docutils literal notranslate">parent 构建一个新的近场管理器。

adapterStateChanged
(state)#
参数:

状态AdapterState

每当 NFC 适配器的 状态 发生变化时,都会发出此信号。

备注

目前,此信号仅在 Android 上发出。

isEnabled
()#
返回类型:

布尔型

如果设备有 NFC 适配器并且它已开启,则返回 true;否则返回 false

另请参阅

isSupported()

isSupported
([accessMethod=QNearFieldTarget.AnyAccess])#
参数:

访问方法AccessMethod

返回类型:

布尔型

如果底层设备有 NFC 适配器,则返回 true;否则返回 false。如果在 accessMethod 中提供了访问方法,则只有在 NFC 适配器支持该访问方法时,函数才返回 true

另请参阅

isEnabled()

setUserInformation
(message)#
参数:

消息 – 字符串

设置系统显示给用户的消息。如果目标检测正在运行,则 message 将立即更新,可作为进度消息使用。在调用 startTargetDetection() 而无错误消息之前设置的最后一条消息用作成功消息。如果目标检测没有运行,则在下一次检测开始时使用 message 作为初始消息。默认情况下,不向用户显示任何消息。

备注

目前,此函数仅在 iOS 上有影响,因为在扫描期间系统会显示弹窗。在 iOS 上,此 message 被映射到Scanner成功完成时的警告消息。其他平台将忽略 message

startTargetDetection(accessMethod)#
参数:

访问方法AccessMethod

返回类型:

布尔型

开始检测目标并返回 true,表示目标检测成功启动;否则返回 false。当目标在附近时,将触发 targetDetected() 信号。只有具有给定 accessMethod 的标签才会被传递。活动检测会继续进行,直到调用 stopTargetDetection()

要使用不同的 accessMethod 检测目标,必须首先调用 stopTargetDetection()

备注

在 iOS 上,不可能同时开始使用 NdefAccess 和 TagTypeSpecificAccess 进行目标检测。因此,如果选择了 AnyAccess,则将使用 NdefAccess。

另请参阅

stopTargetDetection()

stopTargetDetection([errorMessage=""])#
参数:

errorMessage – 字符串

停止检测目标。直到再次调用 startTargetDetection(),将不再发出 targetDetected() 信号。之前检测到的目标仍然是有效的。

备注

在 iOS 上,检测到的目标在这次调用之后将无效(例如,尝试写入或读取 NDEF 消息将导致错误)。

如果提供了 errorMessage,则这是向系统表明应用程序目标未达成的提示。用户将看到 errorMessage 和相应的错误图标。使用空的 errorMessage 调用此函数表示操作成功结束;否则应将 errorMessage 传递给此函数。

备注

目前,errorMessage 只在有影响于 iOS,因为系统在扫描期间会显示包含 errorMessage 的弹出窗口。其他平台将忽略此参数。

另请参阅

setUserInformation()

targetDetected(target)#
参数:

targetQNearFieldTarget

每当检测到目标时都会发出这个信号。参数 target 表示检测到的目标。

对于所有检测到的目标都将发出这个信号。

QNearFieldManager 维护了 target 的所有权,但只有在调用 QNearFieldManager 析构函数时才会销毁。可以通过调用 setParent() 来转移所有权。

不要从连接到该信号的槽中删除 target,而是调用 deleteLater()。

备注

如果 target 在移出近距离之前被删除,则 targetLost() 信号不会被触发。

另请参阅

targetLost()

targetDetectionStopped()#

每次目标检测停止时都会发射此信号。

备注

通常在调用 stopTargetDetection() 时会发射此信号。此外,用户在iOS扫描期间由系统显示的弹出窗口中可以停止检测,这也会触发此信号。

targetLost(target)#
参数:

targetQNearFieldTarget

每次目标移动出近距离时都会发射此信号。参数 target 代表丢失的目标。

不要从连接到该信号的槽中删除 target,而是使用 deleteLater()。

另请参阅

disconnected()