PySide6.QtNfc.QNearFieldManager¶
- class QNearFieldManager¶
QNearFieldManager
类提供了对NFC事件通知的访问。更多…概要¶
方法¶
def
__init__()
def
isEnabled()
def
isSupported()
信号¶
def
targetDetected()
def
targetLost()
注意
本文档可能包含从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适配器正在关闭。
使用
parent
构造一个新的近场管理器。- adapterStateChanged(state)¶
- Parameters:
状态 –
AdapterState
每当NFC适配器的
state
状态发生变化时,都会发出此信号。注意
目前,此信号仅在Android上发出。
- isEnabled()¶
- Return type:
布尔
如果设备具有NFC适配器并且已打开,则返回
true
;否则返回false
。另请参阅
- isSupported([accessMethod=QNearFieldTarget.AnyAccess])¶
- Parameters:
accessMethod –
AccessMethod
- Return type:
布尔
如果底层设备具有NFC适配器,则返回
true
;否则返回false
。如果提供了accessMethod
,则仅当NFC适配器支持给定的accessMethod
时,函数才返回true
。另请参阅
- setUserInformation(message)¶
- Parameters:
消息 – str
设置系统向用户显示的消息。如果目标检测正在运行,
message
将立即更新,并可用作进度消息。在调用startTargetDetection()
之前设置的最后一个没有错误消息的消息将用作成功消息。如果目标检测未运行,message
将在下次检测启动时用作初始消息。默认情况下,不会向用户显示任何消息。注意
目前,此功能仅在iOS上有效,因为系统在扫描期间会显示一个弹出窗口。在iOS上,此
message
映射到扫描成功完成后显示的警报消息。其他平台将忽略message
。- startTargetDetection(accessMethod)¶
- Parameters:
accessMethod –
AccessMethod
- Return type:
布尔
开始检测目标,如果目标检测成功启动则返回
true
;否则返回false
。当目标在接近范围内时,会触发targetDetected()
信号。只有具有给定accessMethod
的标签才会被报告。目标检测将持续到调用stopTargetDetection()
为止。要检测具有不同
accessMethod
的目标,必须先调用stopTargetDetection()
。注意
在iOS上,无法同时为NdefAccess和TagTypeSpecificAccess启动目标检测。因此,如果选择了AnyAccess,将使用NdefAccess代替。
- stopTargetDetection([errorMessage=""])¶
- Parameters:
errorMessage – str
停止检测目标。在再次调用
startTargetDetection()
之前,targetDetected()
信号将不再发出。之前检测到的目标仍然有效。注意
在iOS上,检测到的目标在此调用后变为无效(例如,尝试写入或读取NDEF消息将导致错误)。
如果提供了
errorMessage
,它是对系统的一个提示,表示应用程序的目标未达成。errorMessage
和相应的错误图标会显示给用户。使用空的errorMessage
调用此函数意味着操作成功结束;否则,应将errorMessage
传递给此函数。注意
目前,
errorMessage
仅在 iOS 上有效,因为系统在扫描期间会显示一个弹出窗口,其中errorMessage
可见。其他平台将忽略此参数。另请参阅
- targetDetected(target)¶
- Parameters:
目标 –
QNearFieldTarget
每当检测到目标时,就会发出此信号。
target
参数表示检测到的目标。此信号将为所有检测到的目标发出。
QNearFieldManager
保持对target
的所有权,然而,它不会被销毁,直到调用QNearFieldManager
的析构函数。可以通过调用 setParent() 来转移所有权。不要从连接到这个信号的槽中删除
target
,而是调用 deleteLater()。- targetDetectionStopped()¶
每当目标检测停止时,都会发出此信号。
注意
大多数情况下,当调用
stopTargetDetection()
时会发出此信号。此外,用户可以在扫描期间系统显示的弹出窗口中停止iOS上的检测,这也会导致发出此信号。- targetLost(target)¶
- Parameters:
目标 –
QNearFieldTarget
每当目标移出接近范围时,就会发出此信号。
target
参数表示丢失的目标。不要从连接到这个信号的槽中删除
target
,而是使用 deleteLater()。另请参阅