QNearFieldTarget Class
QNearFieldTarget クラスは、ターゲットデバイスとの通信を行うためのインターフェースを提供します。詳細...
| ヘッダー: | #include <QNearFieldTarget> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Nfc) target_link_libraries(mytarget PRIVATE Qt6::Nfc) |
| qmake: | QT += nfc |
| 継承元: | QObject |
パブリック型
| class | RequestId |
| enum | AccessMethod { UnknownAccess, NdefAccess, TagTypeSpecificAccess, AnyAccess } |
| flags | AccessMethods |
| enum | Error { NoError, UnknownError, UnsupportedError, TargetOutOfRangeError, NoResponseError, …, UnsupportedTargetError } |
| enum | Type { ProprietaryTag, NfcTagType1, NfcTagType2, NfcTagType3, NfcTagType4, …, MifareTag } |
パブリック関数
| QNearFieldTarget(QObject *parent = nullptr) | |
| virtual | ~QNearFieldTarget() |
| QNearFieldTarget::AccessMethods | accessMethods() const |
| bool | disconnect() |
| bool | hasNdefMessage() |
| int | maxCommandLength() const |
| QNearFieldTarget::RequestId | readNdefMessages() |
| QVariant | requestResponse(const QNearFieldTarget::RequestId &id) const |
| QNearFieldTarget::RequestId | sendCommand(const QByteArray &command) |
| QNearFieldTarget::Type | type() const |
| QByteArray | uid() const |
| bool | waitForRequestCompleted(const QNearFieldTarget::RequestId &id, int msecs = 5000) |
| QNearFieldTarget::RequestId | writeNdefMessages(const QList<QNdefMessage> &messages) |
シグナル
| void | disconnected() |
| void | error(QNearFieldTarget::Error error, const QNearFieldTarget::RequestId &id) |
| void | ndefMessageRead(const QNdefMessage &message) |
| void | requestCompleted(const QNearFieldTarget::RequestId &id) |
詳細な説明
QNearFieldTarget は、NFC ターゲットデバイスと通信するための汎用インターフェースを提供します。このクラスは、NFC Forum デバイスおよび NFC Forum タグの両方のターゲットをサポートしています。ターゲット固有のすべてのクラスは、このクラスをサブクラス化しています。
type() 関数を使用すると、ターゲットデバイスのタイプを取得できます。uid() 関数は、ターゲットの一意の識別子を返します。accessMethods() 関数から返されるAccessMethods フラグを検証することで、ターゲットがどのアクセス方式をサポートしているかを判断できます。
ターゲットがNdefAccess をサポートしている場合、hasNdefMessage()を呼び出してターゲットに保存済みのNDEFメッセージがあるかどうかをテストでき、readNdefMessages()およびwriteNdefMessages()関数を使用してNDEFメッセージの取得や設定を行うことができます。
ターゲットがTagTypeSpecificAccess をサポートしている場合、sendCommand()を使用して、ターゲットに単一の独自コマンドを送信し、応答を取得することができます。
メンバ型のドキュメント
enum QNearFieldTarget::AccessMethod
flags QNearFieldTarget::AccessMethods
この列挙型は、近距離フィールドのターゲットがサポートするアクセス方法を記述するものです。
| 定数 | 値 | 説明 |
|---|---|---|
QNearFieldTarget::UnknownAccess | 0x00 | ターゲットは、不明なアクセスタイプをサポートしています。 |
QNearFieldTarget::NdefAccess | 0x01 | ターゲットは、readNdefMessages() およびwriteNdefMessages() を使用して NDEF メッセージの読み取りおよび書き込みをサポートしています。 |
QNearFieldTarget::TagTypeSpecificAccess | 0x02 | ターゲットは、sendCommand() を使用して、タグタイプ固有のコマンドの送信をサポートしています。 |
QNearFieldTarget::AnyAccess | 0xff | ターゲットは、既知のアクセス タイプのいずれかをサポートしています。 |
AccessMethods 型は、QFlags<AccessMethod> の typedef です。これは、AccessMethod 値の OR 組み合わせを格納します。
enum QNearFieldTarget::Error
この列挙型は、近距離ターゲットが報告するエラーコードを表します。
| 定数 | 値 | 説明 |
|---|---|---|
QNearFieldTarget::NoError | 0 | エラーは発生していません。 |
QNearFieldTarget::UnknownError | 1 | 未特定のエラーが発生しました。 |
QNearFieldTarget::UnsupportedError | 2 | この近距離ターゲットでは、要求された操作はサポートされていません。 |
QNearFieldTarget::TargetOutOfRangeError | 3 | ターゲットが通信範囲外になりました。 |
QNearFieldTarget::NoResponseError | 4 | ターゲットから応答がありませんでした。 |
QNearFieldTarget::ChecksumMismatchError | 5 | チェックサムにより、応答の破損が検出されました。 |
QNearFieldTarget::InvalidParametersError | 6 | タグタイプ固有の関数に無効なパラメータが渡されました。 |
QNearFieldTarget::ConnectionError | 7 | ターゲットへの接続に失敗しました。 |
QNearFieldTarget::NdefReadError | 8 | ターゲットから NDEF メッセージを読み取れませんでした。 |
QNearFieldTarget::NdefWriteError | 9 | ターゲットへの NDEF メッセージの書き込みに失敗しました。 |
QNearFieldTarget::CommandError | 10 | ターゲットへのコマンド送信に失敗しました。 |
QNearFieldTarget::TimeoutError | 11 | waitForRequestCompleted() で指定された時間内にリクエストを完了できませんでした。 |
QNearFieldTarget::UnsupportedTargetError | 12 | 使用されたターゲットはサポートされていません。例えば、クライアントアプリに必要な権限やプライバシー設定が不足している場合に、このエラーが発生することがあります。 |
enum QNearFieldTarget::Type
この列挙型は、ターゲットが検出された際のタグの種類を表します。
| 定数 | 値 | 説明 |
|---|---|---|
QNearFieldTarget::ProprietaryTag | 0 | 未識別 の独自ターゲットタグ。 |
QNearFieldTarget::NfcTagType1 | 1 | NFC タグタイプ 1 のターゲット。 |
QNearFieldTarget::NfcTagType2 | 2 | NFC タグタイプ 2 のターゲット。 |
QNearFieldTarget::NfcTagType3 | 3 | NFC タグ タイプ 3 のターゲット。 |
QNearFieldTarget::NfcTagType4 | 4 | NFC タグタイプ 4 のターゲット。この値は、NfcTagType4 が、以下の NfcTagType4A または NfcTagType4B によってさらに特定できない場合に使用されます。 |
QNearFieldTarget::NfcTagType4A | 5 | ISO/IEC 14443-3A に基づく NFC タグタイプ 4 ターゲット。 |
QNearFieldTarget::NfcTagType4B | 6 | ISO/IEC 14443-3B に基づく NFC タグタイプ 4 ターゲット。 |
QNearFieldTarget::MifareTag | 7 | Mifare ターゲット。 |
メンバ関数のドキュメント
[explicit] QNearFieldTarget::QNearFieldTarget(QObject *parent = nullptr)
parent を使用して、新しい近距離場ターゲットを作成します。
[virtual noexcept] QNearFieldTarget::~QNearFieldTarget()
近距離のターゲットを破壊する。
QNearFieldTarget::AccessMethods QNearFieldTarget::accessMethods() const
この近距離フィールドターゲットがサポートしているアクセスメソッドを返します。
bool QNearFieldTarget::disconnect()
ターゲットとの接続を閉じ、別のインスタンスからターゲットとの通信を可能にします。また、QNearFieldTarget が破棄されると、接続も閉じられます。コマンドの処理やNDEFメッセージの読み取り・書き込みを行う際には、ターゲットデバイスへの接続が(再)確立されます。
既存の接続が正常に閉じられた場合にのみ、true を返します。それ以外の場合は、false を返します。
[signal] void QNearFieldTarget::disconnected()
この信号は、近距離のターゲットが検知範囲外へ移動したときに発信されます。
[signal] void QNearFieldTarget::error(QNearFieldTarget::Error error, const QNearFieldTarget::RequestId &id)
このシグナルは、リクエストid の処理中にエラーが発生した際に発せられます。error パラメータには、そのエラーの詳細が記述されています。
bool QNearFieldTarget::hasNdefMessage()
近距離通信ターゲットに少なくとも1つのNDEFメッセージが保存されている場合はtrue を返し、そうでない場合はfalse を返します。
int QNearFieldTarget::maxCommandLength() const
sendCommand で送信可能な最大バイト数を返します。ターゲットがタグタイプ固有のコマンドの送信に対応していない場合は、0 が返されます。
sendCommand()も参照してください 。
[signal] void QNearFieldTarget::ndefMessageRead(const QNdefMessage &message)
このシグナルは、ターゲットから完全なNDEFデータ(message )が読み取られたときに発信されます。
readNdefMessages()も参照してください 。
QNearFieldTarget::RequestId QNearFieldTarget::readNdefMessages()
近距離通信ターゲットに保存されているNDEFメッセージの読み取りを開始します。リクエストの完了状況を追跡するために使用できるリクエストIDを返します。ターゲットがNDEFメッセージの読み取りに対応していない場合、無効なリクエストIDが返されます。
各NDEFメッセージごとに、ndefMessageRead()シグナルが発行されます。すべてのNDEFメッセージの読み取りが完了すると、requestCompleted()シグナルが発行されます。エラーが発生した場合は、error()シグナルが発行されます。
注: NFC Forumで定義されている「INITIALIZED」状態にあるタグからNDEFメッセージを読み込もうとすると 、NdefReadError が発生して失敗します。これは、タグがNDEFをサポートするようにフォーマットされているものの、まだメッセージが含まれていないためです。
[signal] void QNearFieldTarget::requestCompleted(const QNearFieldTarget::RequestId &id)
このシグナルは、リクエスト `id ` が完了した際に発せられます。
sendCommand()も参照してください 。
QVariant QNearFieldTarget::requestResponse(const QNearFieldTarget::RequestId &id) const
リクエスト「id 」のデコード済みレスポンスを返します。リクエストが不明であるか、まだ処理が完了していない場合は、無効なQVariant が返されます。
QNearFieldTarget::RequestId QNearFieldTarget::sendCommand(const QByteArray &command)
近距離のターゲットに「command 」を送信します。リクエストの完了状況を追跡するために使用できるリクエストIDを返します。ターゲットがタグタイプ固有のコマンドの送信に対応していない場合、無効なリクエストIDが返されます。
リクエストが正常に完了すると、requestCompleted() シグナルが発行されます。そうでない場合は、error() シグナルが発行されます。
リクエストが正常に完了すると、requestResponse() 関数から応答を取得できます。このリクエストの応答はQByteArray となります。
requestCompleted() およびwaitForRequestCompleted()も参照してください 。
QNearFieldTarget::Type QNearFieldTarget::type() const
この近距離フィールドターゲットのタグタイプを返します。
QByteArray QNearFieldTarget::uid() const
近距離ターゲットのUIDを返します。
注: iOSでは 、NdefAccess メソッドを使用して検出された近距離ターゲットに対して、この関数は空のQByteArray を返します。
「QNearFieldTarget::AccessMethod」も参照してください 。
bool QNearFieldTarget::waitForRequestCompleted(const QNearFieldTarget::RequestId &id, int msecs = 5000)
リクエスト `id ` が完了するまで、最大msecs ミリ秒待機します。リクエストが正常に完了し、`requestCompeted()` シグナルが発行された場合は `true ` を返します。それ以外の場合は `false` を返します。
QNearFieldTarget::RequestId QNearFieldTarget::writeNdefMessages(const QList<QNdefMessage> &messages)
messages 内のNDEFメッセージをターゲットに書き込みます。リクエストの完了状況を追跡するために使用できるリクエストIDを返します。ターゲットがNDEFメッセージの書き込みに対応していない場合、無効なリクエストIDが返されます。
書き込み操作が正常に完了すると、requestCompleted() シグナルが発信されます。そうでない場合は、error() シグナルが発信されます。
© 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.