各端末で APK & TAG を使用すると、他の NFC TAG ID を知ることができます。たとえば、電話機 A と B がタグ付けを試みます。次に、電話 A は電話 B の NFC タグ ID (4 バイト - 16 進数) を知ることができます。しかし、携帯電話で NFC TAG ID を知る方法を知りたいです。他の電話は使用していません。他に何か情報をご存知でしたら、アドバイスをお願いします。
1 に答える
電話には、必ずしも固定の衝突防止識別子 (「NFC タグ ID」と呼びます) があるとは限りません。たとえば、アクティブ化のたびにランダムに割り当てられる衝突防止識別子を持つことができます (たとえば、外部 HF フィールドがオンになっている、電話がオンになっているなど)。また、1 つまたは複数の不変の衝突防止識別子 (たとえば、1 つまたは複数のセキュア エレメントから)。
これは、いくつかの要因によって異なります。
- その電話機の NFC コントローラにセキュア エレメントが接続されていますか?
- NFC コントローラーは、接続されたセキュア エレメントを外部に公開するように構成されていますか?
- 電話機はカード エミュレーション モードですか、それともパッシブ ピアツーピア モードですか(または両方のモードの衝突防止フェーズが組み合わされていますか)。
- NFC コントローラーは、1 つのカード エミュレート エンティティ (セキュア エレメントまたはホスト コントローラーなど)を外部に直接公開しますか? それとも、NFCEE ルーティングを使用して 1 つ以上のエミュレート エンティティを組み合わせますか?
- 等。
あなたが「APK」に言及しているように、私はあなたが Android プラットフォームを参照していると推測しています (それに関する私の質問への回答を拒否しましたが)。新しい Android デバイス (特にホストベースのカード エミュレーションをサポートするデバイス) およびカード エミュレーションをまったく使用しない Android デバイスでは、通常、外部から見える衝突防止識別子 (UID) は静的ではなく、毎回変化します。アクティベーションまたはデバイスの再起動のたびに (いくつかの例外が存在するようです)。特に、NFC ピアツーピア モードでは、標準はセッションごとのランダム識別子の使用を義務付けています。したがって、これらの典型的なケースでは、UID はあまり役に立ちません。
一般に、Androidは、現在使用されている衝突防止識別子をデバイス内から取得するための API を提供しません。通常、ランダムな識別子は NFC コントローラー内で作成されるため、Android システムはそれを認識しません。
セキュア エレメント チップの不変 ID に関しては、通常の Android にはセキュア エレメントにアクセスするための公開 API が含まれていないため、そのようなセキュア エレメントの識別情報についても同様です。