Android デバイスの NFC スタック (またはチップセット) を把握する方法はありますか? NfcV クラス (ISO15693 タグ) のカスタム実装を使用してアプリを作成しています。Nexus S、Galaxy S2、Nexus 7 などの古いデバイスでは、NFC チップセットは NXP のものであり、サポートされている ISO15693 タグは NXP ICODE タグのみです。送受信機能に依存するカスタム実装があります。TI および ST Micro タグで美しく機能します。しかし問題は、Nexus 10、Nexus 4、SGS4 などのデバイスで、Google が Broadcom NFC トランシーバーと、ISO15693 タグをネイティブでサポートする NFC スタックの使用を開始したことです。プログラムで NFC チップセットを識別することは可能ですか? もしそうなら、どのように?
3 に答える
NXP NFC ベースのデバイスはすべてMifareClassic
タグをサポートしていますが、Broadcom ベースのデバイスにはこのサポートがありません。https://stackoverflow.com/a/15833191/1202968で説明されているように、そのサポートが存在するかどうかをアプリで確認できます。
「サポートされている唯一の ISO15693 タグは NXP ICODE タグです」と書くとき、ISO15693 タグでの NDEF メッセージの読み取りと書き込みは、そのようなデバイスの NXP ICODE タグでのみサポートされていることを意味していると思います (通信は ISO 15693 コマンドを使用して正常に機能するため)これらの NXP ベースの NFC デバイスで)。これらのデバイスが他の ISO15693 タグの NDEF メッセージ ストレージもサポートするように更新された場合 (あるとしても)、MifareClassic
サポートを確認するトリックは機能しなくなります。明らかに...
ここで推測しますが、次のようなすべての技術フィルターをキャッチすることができます
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<tech-list>
<tech>android.nfc.tech.NfcA</tech>
</tech-list>
</resources>
Broadcom チップでサポートされていない、私が試したほとんどのカードを読み取ります。その後、空またはヌルの NdefMessage をチェックできます。情報が含まれている場合、それは NXP チップです。それ以外の場合は、Broadcom です。
これは非常に狭いフィルターを持つという概念を破りますが、それ以外の方法でそれを行う方法はわかりません.
カスタム Samsung ファームウェアは互換性のないタグを無視するだけなので、これも s4 では機能しない可能性があります。
タグをスキャンすると、正確な技術リスト (互換性のあるすべてのもの) が logcat に表示されるため、別の方法もあるかもしれません。