QNearFieldManager Class
QNearFieldManager クラスは、NFC イベントの通知へのアクセスを提供します。詳細...
Header: | #include <QNearFieldManager> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Nfc) target_link_libraries(mytarget PRIVATE Qt6::Nfc) |
qmake: | QT += nfc |
Inherits: | 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 フォーラム・デバイスは 2 つの通信モードをサポートします。最初のモードであるピアツーピア通信は、2 つの NFC フォーラム装置間の通信に使用されます。第 2 のモードであるマスタ/スレーブ通信は、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' のカテゴリー別ロギングを有効にすることで、デバッグ出力を有効にすることができる。
メンバタイプの説明
enum class QNearFieldManager::AdapterState
この列挙型は、NFC アダプタが持つことができるさまざまな状態を記述します。
定数 | 値 | 説明 |
---|---|---|
QNearFieldManager::AdapterState::Offline | 1 | nfc アダプタはオフラインです。 |
QNearFieldManager::AdapterState::TurningOn | 2 | nfc アダプタはオンになっています。 |
QNearFieldManager::AdapterState::Online | 3 | nfc アダプタはオンラインです。 |
QNearFieldManager::AdapterState::TurningOff | 4 | nfc アダプタはオフになっています。 |
メンバ関数説明
[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では、この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()も参照してください 。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。