このページについて

Qt NFC

NFC APIは、NFC対応デバイス間の接続機能を提供します。

現在、このAPIは、Neardv0.14以降を使用するAndroid、iOS、およびLinuxでサポートされています。また、このモジュールは、Linux、macOS、およびWindows上でPC/SC仕様をサポートするリーダーへの限定的なアクセスも提供します。

NFC は、最大転送速度 424 Kbps の短距離(20 センチメートル未満)無線技術です。NFC は、2 台のデバイスを互いに近づけた際に、小さなデータパケットを転送するのに最適です。

NFCモジュールは、NFCフォーラムタグおよびNFCフォーラムデバイスとやり取りするためのAPIを提供します。ターゲットの検出や接続切断の検知、NDEFメッセージハンドラの登録、NFCフォーラムタグ上のNDEFメッセージの読み取り・書き込み、およびタグ固有のコマンドの送信が可能です。

モジュールの使用方法

QtモジュールのC++ APIを使用するには、モジュールライブラリに対して、直接または他の依存関係を通じてリンクを行う必要があります。CMakeやqmake など、いくつかのビルドツールがこれに対応しています。

CMake を使用したビルド

find_package() コマンドを使用して、Qt6 パッケージ内の必要なモジュールコンポーネントを特定します。

find_package(Qt6 REQUIRED COMPONENTS Nfc)
target_link_libraries(mytarget PRIVATE Qt6::Nfc)

詳細については、「CMake を使用したビルド」の概要を参照してください。

qmake を使用したビルド

qmake を使用してモジュールをビルドするように設定するには、プロジェクトの .pro ファイル内で、QT 変数の値としてモジュールを追加します:

QT += nfc

記事とガイド

ログ記録カテゴリ

QtNfc モジュールは、以下のlogging categories をエクスポートします:

ロギングカテゴリ説明
Qt NFC.neardNeard/Linux実装のロギングを有効にします

例

リファレンス

セキュリティ上の考慮事項

NFCタグの内容は、信頼できる入力として扱うことはできません。データを使用する前にその妥当性を検証するのは、アプリケーション開発者の責任です。

URI

QNdefNfcUriRecord::uri() やQNdefNfcSmartPosterRecord::uri() などの関数は、タグの内容から直接デコードされた URI を返します。アプリケーションは、例えば、返された URI を開いたり、読み込んだり、処理を行ったりする前に、そのスキームがアプリケーションが受信することを想定しているもの(例えば、file やjavascript ではなく、https など)であるかどうかを確認することができます。

アイコンデータ

QNdefNfcIconRecord::data() やQNdefNfcSmartPosterRecord::icon() などの関数は、タグに埋め込まれたアイコンデータを含む生のバイト配列を返します。MIME タイプとコンテンツはどちらもタグの作成者によって指定されるため、実際のバイトデータが宣言されたタイプに準拠していない可能性があります。

アプリケーションは、データが有効であると仮定するのではなく、デコード後に結果を検証する必要があります。例えば、QImageにデータを直接渡す場合は、QImageが検証を行うため、一般的に安全です。ただし、データを手動で処理する場合やQt以外のツールを使用する場合は、追加の検証を行うことをお勧めします。

モジュールの進化

Qt NFC には、Qt 6 シリーズに向けて行われたモジュール API および機能に関する重要な変更点が記載されています。

ライセンス

Qt NFC は、The Qt Company から商用ライセンスで提供されています。さらに、フリーソフトウェアライセンスでも提供されています。Qt 5.4 以降、これらのフリーソフトウェアライセンスは、GNU Lesser General Public License バージョン 3 またはGNU General Public License バージョン 2 です。詳細については、「Qt ライセンス」を参照してください。

© 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.