QNearFieldManager Class

The QNearFieldManager class provides access to notifications for NFC events. 更多...

头: #include <QNearFieldManager>
CMake: find_package(Qt6 COMPONENTS Nfc REQUIRED)
target_link_libraries(mytarget PRIVATE Qt6::Nfc)
qmake: QT += nfc
Since: Qt 5.2
继承: QObject

公共类型

enum class AdapterState { Offline, TurningOn, Online, TurningOff }

公共函数

  QNearFieldManager (QObject * parent = nullptr)
virtual ~QNearFieldManager ()
bool isEnabled () const
bool isSupported (QNearFieldTarget::AccessMethod accessMethod = QNearFieldTarget::AnyAccess) const
void setUserInformation (const QString & message )
bool startTargetDetection (QNearFieldTarget::AccessMethod accessMethod )
void stopTargetDetection (const QString & errorMessage = QString())

信号

void adapterStateChanged (QNearFieldManager::AdapterState state )
void targetDetected (QNearFieldTarget * target )
void targetDetectionStopped ()
void targetLost (QNearFieldTarget * target )

详细描述

NFC Forum devices support two modes of communications. The first mode, peer-to-peer communications, is used to communicate between two NFC Forum devices. The second mode, master/slave communications, is used to communicate between an NFC Forum device and an NFC Forum Tag or Contactless Card. The targetDetected () signal is emitted when a target device enters communications range. Communications can be initiated from the slot connected to this signal.

NFC Forum devices generally operate as the master in master/slave communications. Some devices are also capable of operating as the slave, so called Card Emulation mode. In this mode the local NFC device emulates a NFC Forum Tag or Contactless Card.

Applications can connect to the targetDetected () 和 targetLost () signals to get notified when an NFC Forum Tag enters or leaves proximity. Before these signals are emitted target detection must be started with the startTargetDetection () function. Target detection can be stopped with the stopTargetDetection () function. When the target is no longer required the target should be deleted as other applications may be blocked from accessing the target.

成员类型文档编制

[since 5.12] enum class QNearFieldManager:: AdapterState

This enum describes the different states a NFC adapter can have.

常量 描述
QNearFieldManager::AdapterState::Offline 1 The nfc adapter is offline.
QNearFieldManager::AdapterState::TurningOn 2 The nfc adapter is turning on.
QNearFieldManager::AdapterState::Online 3 The nfc adapter is online.
QNearFieldManager::AdapterState::TurningOff 4 The nfc adapter is turning off.

该枚举在 Qt 5.12 引入或被修改。

成员函数文档编制

QNearFieldManager:: QNearFieldManager ( QObject * parent = nullptr)

Constructs a new near field manager with parent .

[signal, since 5.12] void QNearFieldManager:: adapterStateChanged ( QNearFieldManager::AdapterState state )

此信号被发射每当 state of the NFC adapter changed.

注意: Currently, this signal is only emitted on Android.

该函数在 Qt 5.12 引入。

[signal] void QNearFieldManager:: targetDetected ( QNearFieldTarget * target )

This signal is emitted whenever a target is detected. The target parameter represents the detected target.

This signal will be emitted for all detected targets.

QNearFieldManager maintains ownership of target , however, it will not be destroyed until the QNearFieldManager destructor is called. Ownership may be transferred by calling setParent ().

不要删除 target from the slot connected to this signal, instead call deleteLater ().

注意: that if target is deleted before it moves out of proximity the targetLost () signal will not be emitted.

另请参阅 targetLost ().

[signal, since 6.2] void QNearFieldManager:: targetDetectionStopped ()

This signal is emitted whenever the target detection is stopped.

注意: Mostly this signal is emitted when stopTargetDetection () has been called. Additionally the user is able to stop the detection on iOS within a popup shown by the system during the scan, which also leads to emitting this signal.

该函数在 Qt 6.2 引入。

[signal] void QNearFieldManager:: targetLost ( QNearFieldTarget * target )

This signal is emitted whenever a target moves out of proximity. The target parameter represents the lost target.

不要删除 target from the slot connected to this signal, instead use deleteLater ().

另请参阅 QNearFieldTarget::disconnected ().

[virtual] QNearFieldManager:: ~QNearFieldManager ()

Destroys the near field manager.

[since 6.2] bool QNearFieldManager:: isEnabled () const

返回 true if the device has a NFC adapter and it is turned on; otherwise returns false .

该函数在 Qt 6.2 引入。

另请参阅 isSupported ().

[since 5.12] bool QNearFieldManager:: isSupported ( QNearFieldTarget::AccessMethod accessMethod = QNearFieldTarget::AnyAccess) const

返回 true if the underlying device has a NFC adapter; otherwise returns false . If an accessMethod is given, the function returns true only if the NFC adapter supports the given accessMethod .

该函数在 Qt 5.12 引入。

另请参阅 isEnabled ().

[since 6.2] void QNearFieldManager:: setUserInformation (const QString & message )

Sets the message shown to the user by the system. If the target detection is running the message will be updated immediately and can be used as a progress message. The last message set before a call to startTargetDetection () without an error message is used as a success message. If the target detection is not running the message will be used as the initial message when the next detection is started. By default no message is shown to the user.

注意: Currently, this function only has an effect on iOS because a popup is shown by the system during the scan. On iOS, this message is mapped to the alert message which is shown upon successful completion of the scan. Other platforms will ignore message .

该函数在 Qt 6.2 引入。

另请参阅 startTargetDetection () 和 stopTargetDetection ().

bool QNearFieldManager:: startTargetDetection ( QNearFieldTarget::AccessMethod accessMethod )

Starts detecting targets and returns true if target detection is successfully started; otherwise returns false . Causes the targetDetected () signal to be emitted when a target is within proximity. Only tags with the given accessMethod will be delivered. Active detection continues until stopTargetDetection () 被调用。

To detect targets with a different accessMethod , stopTargetDetection () must be called first.

另请参阅 stopTargetDetection ().

void QNearFieldManager:: stopTargetDetection (const QString & errorMessage = QString())

Stops detecting targets. The targetDetected () signal will no longer be emitted until another call to startTargetDetection () is made. Targets detected before are still valid.

If an errorMessage is provided, this is a hint to the system that the goal, the application had, was not reached. The errorMessage and a matching error icon are shown to the user. Calling this function with an empty errorMessage , implies a successful operation end; otherwise an errorMessage should be passed to this function.

注意: 目前, errorMessage only has an effect on iOS because a popup is shown by the system during the scan where the errorMessage is visible. Other platforms will ignore this parameter.

另请参阅 setUserInformation ().