- class QNearFieldManager#
QNearFieldManager
类提供了对 NFC 事件的访问。 更多…摘要#
方法#
def
__init__()
def
isEnabled()
def
isSupported()
信号#
备注
本文档可能包含自动从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适配器正在关机。
使用《code class="docutils literal notranslate">parent 构建一个新的近场管理器。
-
adapterStateChanged(state)#
- 参数:
状态 –
AdapterState
每当 NFC 适配器的
状态
发生变化时,都会发出此信号。备注
目前,此信号仅在 Android 上发出。
-
isEnabled()#
- 返回类型:
布尔型
如果设备有 NFC 适配器并且它已开启,则返回
true
;否则返回false
。另请参阅
-
isSupported([accessMethod=QNearFieldTarget.AnyAccess])#
- 参数:
访问方法 –
AccessMethod
- 返回类型:
布尔型
如果底层设备有 NFC 适配器,则返回
true
;否则返回false
。如果在accessMethod
中提供了访问方法,则只有在 NFC 适配器支持该访问方法时,函数才返回true
。另请参阅
-
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([errorMessage=""])#
- 参数:
errorMessage – 字符串
停止检测目标。直到再次调用
startTargetDetection()
,将不再发出targetDetected()
信号。之前检测到的目标仍然是有效的。备注
在 iOS 上,检测到的目标在这次调用之后将无效(例如,尝试写入或读取 NDEF 消息将导致错误)。
如果提供了
errorMessage
,则这是向系统表明应用程序目标未达成的提示。用户将看到errorMessage
和相应的错误图标。使用空的errorMessage
调用此函数表示操作成功结束;否则应将errorMessage
传递给此函数。备注
目前,
errorMessage
只在有影响于 iOS,因为系统在扫描期间会显示包含errorMessage
的弹出窗口。其他平台将忽略此参数。另请参阅
- targetDetected(target)#
- 参数:
target –
QNearFieldTarget
每当检测到目标时都会发出这个信号。参数
target
表示检测到的目标。对于所有检测到的目标都将发出这个信号。
QNearFieldManager
维护了target
的所有权,但只有在调用QNearFieldManager
析构函数时才会销毁。可以通过调用 setParent() 来转移所有权。不要从连接到该信号的槽中删除
target
,而是调用 deleteLater()。- targetDetectionStopped()#
每次目标检测停止时都会发射此信号。
备注
通常在调用
stopTargetDetection()
时会发射此信号。此外,用户在iOS扫描期间由系统显示的弹出窗口中可以停止检测,这也会触发此信号。- targetLost(target)#
- 参数:
target –
QNearFieldTarget
每次目标移动出近距离时都会发射此信号。参数
target
代表丢失的目标。不要从连接到该信号的槽中删除
target
,而是使用 deleteLater()。另请参阅