이 페이지에서

QNearFieldManager Class

QNearFieldManager 클래스는 NFC 이벤트에 대한 알림 기능을 제공합니다. 더 보기...

헤더: #include <QNearFieldManager>
CMake: find_package(Qt6 REQUIRED COMPONENTS Nfc)
target_link_libraries(mytarget PRIVATE Qt6::Nfc)
qmake: QT += nfc
상속: QObject

공개 타입

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

공개 함수

QNearFieldManager(QObject *parent = nullptr)
virtual ~QNearFieldManager()
(since 6.2) bool isEnabled() const
bool isSupported(QNearFieldTarget::AccessMethod accessMethod = QNearFieldTarget::AnyAccess) const
(since 6.2) 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)
(since 6.2) void targetDetectionStopped()
void targetLost(QNearFieldTarget *target)

상세 설명

NFC 포럼 장치는 두 가지 통신 모드를 지원합니다. 첫 번째 모드인 피어 투 피어(peer-to-peer) 통신은 두 개의 NFC 포럼 장치 간 통신에 사용됩니다. 두 번째 모드인 마스터/슬레이브(master/slave) 통신은 NFC 포럼 장치와 NFC 포럼 태그 또는 비접촉식 카드 간 통신에 사용됩니다. 대상 장치가 통신 범위에 진입하면 targetDetected() 신호가 발신됩니다. 이 신호에 연결된 슬롯에서 통신을 시작할 수 있습니다.

NFC 포럼 기기는 일반적으로 마스터/슬레이브 통신에서 마스터 역할을 수행합니다. 일부 기기는 슬레이브, 즉 소위 ‘카드 에뮬레이션 모드’로도 작동할 수 있습니다. 이 모드에서 로컬 NFC 기기는 NFC 포럼 태그나 비접촉식 카드를 에뮬레이션합니다.

애플리케이션은 targetDetected() 및 targetLost() 신호에 연결하여 NFC 포럼 태그가 근접 범위에 들어오거나 빠져나갈 때 알림을 받을 수 있습니다. 이러한 신호가 발신되기 전에 startTargetDetection() 함수를 사용하여 대상 감지를 시작해야 합니다. stopTargetDetection() 함수를 사용하여 대상 감지를 중지할 수 있습니다. 대상이 더 이상 필요하지 않을 경우, 다른 애플리케이션의 대상 접근이 차단될 수 있으므로 해당 대상을 삭제해야 합니다.

리눅스에서의 NFC

리눅스 NFC 프로젝트는 리눅스 플랫폼에서 NFC를 지원하기 위한 소프트웨어를 제공합니다. neard 데몬을 사용하면 DBus 인터페이스를 통해 지원되는 하드웨어에 접근할 수 있습니다. QtNfc 는 neard 버전 0.14를 필요로 하며, 이는 소스 코드에서 빌드하거나 적절한 리눅스 패키지 관리자를 통해 설치할 수 있습니다. 현재 모든 API 기능이 지원되는 것은 아닙니다. QtNfc 가 DBus 인터페이스에 접근하려면 neard 데몬이 실행 중이어야 합니다. 문제가 발생할 경우 'qt.nfc.neard'에 대한 분류별 로깅을 활성화하여 디버그 출력을 확인할 수 있습니다.

멤버 유형 문서

enum class QNearFieldManager::AdapterState

이 열거형은 NFC 어댑터가 가질 수 있는 다양한 상태를 설명합니다.

상수값설명
QNearFieldManager::AdapterState::Offline1NFC 어댑터가 오프라인 상태입니다.
QNearFieldManager::AdapterState::TurningOn2NFC 어댑터가 켜지고 있습니다.
QNearFieldManager::AdapterState::Online3NFC 어댑터가 온라인 상태입니다.
QNearFieldManager::AdapterState::TurningOff4NFC 어댑터가 꺼지고 있습니다.

멤버 함수 문서

[explicit] QNearFieldManager::QNearFieldManager(QObject *parent = nullptr)

parent 를 사용하여 새로운 근거리 필드 관리자를 생성합니다.

[virtual noexcept] QNearFieldManager::~QNearFieldManager()

근거리 필드 관리자를 파괴합니다.

[signal] void QNearFieldManager::adapterStateChanged(QNearFieldManager::AdapterState state)

이 신호는 NFC 어댑터의 state 가 변경될 때마다 전송됩니다.

참고: 현재 이 신호는 Android에서만 발생합니다.

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

장치에 NFC 어댑터가 있고 이 어댑터가 켜져 있으면 ` true `를 반환하고, 그렇지 않으면 ` false`를 반환합니다.

이 함수는 Qt 6.2에서 도입되었습니다.

isSupported()도 참조하십시오 .

bool QNearFieldManager::isSupported(QNearFieldTarget::AccessMethod accessMethod = QNearFieldTarget::AnyAccess) const

기본 장치가 NFC 어댑터를 가지고 있으면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다. accessMethod 가 주어지면, 이 함수는 NFC 어댑터가 주어진 accessMethod 를 지원하는 경우에만 true 를 반환합니다.

isEnabled()도 참조하십시오 .

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

시스템이 사용자에게 표시할 메시지를 설정합니다. 대상 감지 기능이 실행 중일 경우, ` message `가 즉시 업데이트되며 진행 상황 메시지로 사용할 수 있습니다. 오류 메시지 없이 ` startTargetDetection()`를 호출하기 직전에 설정된 마지막 메시지가 성공 메시지로 사용됩니다. 대상 감지가 실행 중이 아닌 경우, 다음 감지가 시작될 때 ` message `가 초기 메시지로 사용됩니다. 기본적으로 사용자에게는 메시지가 표시되지 않습니다.

참고: 현재 이 함수는 iOS에서만 효과가 있습니다. iOS에서는 스캔 중에 시스템이 팝업 창을 표시하기 때문입니다. iOS에서 이 ` message `는 스캔이 성공적으로 완료되었을 때 표시되는 알림 메시지에 매핑됩니다. 다른 플랫폼에서는 ` message`를 무시합니다.

이 함수는 Qt 6.2에서 도입되었습니다.

startTargetDetection() 및 stopTargetDetection()도 참조하십시오 .

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

타겟 감지를 시작하며, 타겟 감지가 성공적으로 시작되면 ` true `을 반환하고, 그렇지 않으면 ` false`을 반환합니다. 타겟이 근접 범위에 들어오면 ` targetDetected()` 신호가 발생합니다. 지정된 ` accessMethod `을 가진 태그만 보고됩니다. 타겟 감지는 ` stopTargetDetection()`이 호출될 때까지 계속됩니다.

다른 accessMethod 를 가진 타겟을 감지하려면, 먼저 stopTargetDetection()를 호출해야 합니다.

참고: iOS에서는 NdefAccess와 TagTypeSpecificAccess에 대한 대상 탐지를 동시에 시작할 수 없습니다. 따라서 AnyAccess가 선택된 경우, 대신 NdefAccess가 사용됩니다.

참고: neard를 사용하는플랫폼에서는 태그가 감지되는 즉시 대상 감지가 중지됩니다.

stopTargetDetection()도 참조하십시오 .

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

타겟 감지를 중지합니다. startTargetDetection()이 다시 호출될 때까지 targetDetected() 신호는 더 이상 발신되지 않습니다. 이전에 감지된 타겟은 여전히 유효합니다.

참고: iOS에서는 이 호출 후 탐지된 타겟이 무효화됩니다(예: NDEF 메시지를 쓰거나 읽으려는 시도는 오류로 이어집니다).

errorMessage 가 제공된 경우, 이는 애플리케이션의 목표가 달성되지 않았음을 시스템에 알리는 신호입니다. 사용자에게 errorMessage 와 이에 해당하는 오류 아이콘이 표시됩니다. 빈 errorMessage 를 사용하여 이 함수를 호출하면 작업이 성공적으로 종료된 것으로 간주되며, 그렇지 않은 경우 errorMessage 를 이 함수에 전달해야 합니다.

참고: 현재 errorMessage 는 iOS에서만 효과가 있습니다. 이는 시스템이 스캔 중에 errorMessage 가 표시되는 팝업을 표시하기 때문입니다. 다른 플랫폼에서는 이 매개변수를 무시합니다.

setUserInformation()도 참조하십시오 .

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

이 신호는 표적이 감지될 때마다 발생합니다. ‘ target ’ 매개변수는 감지된 표적을 나타냅니다.

이 신호는 감지된 모든 대상에 대해 발생합니다.

QNearFieldManager target 의 소유권은 유지되지만, 의 소멸자가 호출될 때까지는 파괴되지 않습니다. ()를 호출하여 소유권을 양도할 수 있습니다. QNearFieldManager setParent

이 신호에 연결된 슬롯에서 target 를 삭제하지 말고, 대신 deleteLater()를 호출하십시오.

참고: target 가 근접 영역을 벗어나기 전에 삭제되면 targetLost() 신호가 발생하지 않습니다.

targetLost()도 참조하십시오 .

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

이 신호는 대상 감지가 중지될 때마다 발생합니다.

참고: 이 신호는주로 ` stopTargetDetection()`가 호출되었을 때 발생합니다. 또한 사용자는 iOS에서 스캔 중에 시스템이 표시하는 팝업 창을 통해 감지를 중지할 수 있으며, 이 경우에도 이 신호가 발생합니다.

이 함수는 Qt 6.2에서 도입되었습니다.

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

이 신호는 타겟이 근접 범위 밖으로 이동할 때마다 발생합니다. ‘ target ’ 매개변수는 감지되지 않는 타겟을 나타냅니다.

이 신호에 연결된 슬롯에서 ` target `을 삭제하지 말고, 대신 ` deleteLater()`를 사용하십시오.

QNearFieldTarget::disconnected()도 참조하십시오 .

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.