PySide6.QtNfc.QNearFieldManager

class QNearFieldManager

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

PySide6.QtNfc.QNearFieldManager 的继承图

概要

方法

信号

注意

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

详细描述

NFC论坛设备支持两种通信模式。第一种模式,点对点通信,用于在两个NFC论坛设备之间进行通信。第二种模式,主/从通信,用于在NFC论坛设备与NFC论坛标签或非接触式卡之间进行通信。当目标设备进入通信范围时,会发出targetDetected()信号。可以从连接到该信号的插槽启动通信。

NFC论坛设备通常在主/从通信中作为主设备运行。一些设备也能够作为从设备运行,即所谓的卡模拟模式。在这种模式下,本地NFC设备模拟一个NFC论坛标签或非接触式卡。

应用程序可以连接到targetDetected()targetLost()信号,以便在NFC论坛标签进入或离开接近时收到通知。在这些信号发出之前,必须使用startTargetDetection()函数启动目标检测。可以使用stopTargetDetection()函数停止目标检测。当不再需要目标时,应删除目标,因为其他应用程序可能会被阻止访问该目标。

Linux上的NFC

Linux NFC 项目提供了在 Linux 平台上支持 NFC 的软件。neard 守护进程将允许通过 DBus 接口访问支持的硬件。QtNfc 需要 neard 版本 0.14,可以从源代码构建或通过适当的 Linux 包管理器安装。目前并非所有 API 功能都受支持。为了使 QtNfc 能够访问 DBus 接口,neard 守护进程必须正在运行。如果遇到问题,可以通过启用 'qt.nfc.neard' 的分类日志记录来启用调试输出。

class AdapterState

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

常量

描述

QNearFieldManager.AdapterState.Offline

NFC适配器处于离线状态。

QNearFieldManager.AdapterState.TurningOn

NFC适配器正在开启。

QNearFieldManager.AdapterState.Online

NFC适配器在线。

QNearFieldManager.AdapterState.TurningOff

NFC适配器正在关闭。

__init__([parent=None])
Parameters:

父对象QObject

使用parent构造一个新的近场管理器。

adapterStateChanged(state)
Parameters:

状态AdapterState

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

注意

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

isEnabled()
Return type:

布尔

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

另请参阅

isSupported()

isSupported([accessMethod=QNearFieldTarget.AnyAccess])
Parameters:

accessMethodAccessMethod

Return type:

布尔

如果底层设备具有NFC适配器,则返回true;否则返回false。如果提供了accessMethod,则仅当NFC适配器支持给定的accessMethod时,函数才返回true

另请参阅

isEnabled()

setUserInformation(message)
Parameters:

消息 – str

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

注意

目前,此功能仅在iOS上有效,因为系统在扫描期间会显示一个弹出窗口。在iOS上,此message映射到扫描成功完成后显示的警报消息。其他平台将忽略message

startTargetDetection(accessMethod)
Parameters:

accessMethodAccessMethod

Return type:

布尔

开始检测目标,如果目标检测成功启动则返回true;否则返回false。当目标在接近范围内时,会触发targetDetected()信号。只有具有给定accessMethod的标签才会被报告。目标检测将持续到调用stopTargetDetection()为止。

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

注意

在iOS上,无法同时为NdefAccess和TagTypeSpecificAccess启动目标检测。因此,如果选择了AnyAccess,将使用NdefAccess代替。

注意

在使用neard的平台上,一旦检测到标签,目标检测将立即停止。

另请参阅

stopTargetDetection()

stopTargetDetection([errorMessage=""])
Parameters:

errorMessage – str

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

注意

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

如果提供了errorMessage,它是对系统的一个提示,表示应用程序的目标未达成。errorMessage和相应的错误图标会显示给用户。使用空的errorMessage调用此函数意味着操作成功结束;否则,应将errorMessage传递给此函数。

注意

目前,errorMessage 仅在 iOS 上有效,因为系统在扫描期间会显示一个弹出窗口,其中 errorMessage 可见。其他平台将忽略此参数。

另请参阅

setUserInformation()

targetDetected(target)
Parameters:

目标QNearFieldTarget

每当检测到目标时,就会发出此信号。target 参数表示检测到的目标。

此信号将为所有检测到的目标发出。

QNearFieldManager 保持对 target 的所有权,然而,它不会被销毁,直到调用 QNearFieldManager 的析构函数。可以通过调用 setParent() 来转移所有权。

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

注意

如果 target 在移出接近范围之前被删除,则不会发出 targetLost() 信号。

另请参阅

targetLost()

targetDetectionStopped()

每当目标检测停止时,都会发出此信号。

注意

大多数情况下,当调用stopTargetDetection()时会发出此信号。此外,用户可以在扫描期间系统显示的弹出窗口中停止iOS上的检测,这也会导致发出此信号。

targetLost(target)
Parameters:

目标QNearFieldTarget

每当目标移出接近范围时,就会发出此信号。target 参数表示丢失的目标。

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

另请参阅

disconnected()