7

現在、NFC 電話の代わりに OS Android 2.3.3 を搭載したタブレットを使用しているため、外部カード リーダーをタブレットに接続する必要があります。組み込みの NFC ライブラリはそのリーダーをサポートしていますか? 前もって感謝します。

4

8 に答える 8

7

Android 2.3 および 4.0 の組み込み NFC ライブラリは、NXP Semiconductors の PN544 NFC チップのみをサポートします。このチップはモバイル機器用に特別に設計されているため、これを使用するカード リーダーは市場に出回っていないと思います。ただし、他の NFC チップをサポートする Android NFC API の代替実装を見つけることができる場合があります。

別の問題として、必要なシステム サービス (NfcManager) など、必要な NFC ライブラリがタブレットにインストールされていない可能性があります。結局のところ、お使いのタブレットは NFC をサポートしていないため、これらのソフトウェア コンポーネントは必要ありません。そのため、これらのソフトウェア コンポーネントを含むタブレット用の新しい ROM システム イメージを作成する必要があります。

多くの一般的なデスクトップ リーダーの 1 つを採用することは、おそらく現実的ではありません。それを Android に統合するために必要なすべてのソフトウェアを作成することは、実際には簡単な作業ではありません。NFC 搭載の Android スマートフォンを購入するか、NFC 搭載の Android タブレットが登場するのを待つ方が簡単かもしれません。

于 2012-02-26T21:26:16.310 に答える
2

お使いのデバイスにはNFCがないため、NFC無線がないため、NFCカードに接続(読み取りまたは書き込み)できません。NFC libによると、NFCAdapterを取得しようとすると、常にnullが返されます。したがって、実験には少なくともnfc対応のAndroidデバイスが必要です。

私のプロジェクトでは、AndroidデバイスではなくPCに接続するACR122スマートカードリーダーを使用しました。このリーダーは、任意のnfcタグを読み取るために使用されます。nfc対応のAndroidデバイスは、カードエミュレーションモードでnfcタグとして機能します。

次に、質問の次の部分「組み込みのNFCライブラリがそのリーダーをサポートするかどうか」。

したがって、このカードリーダーはカードの値を読み取ることができます。

于 2012-03-14T07:37:38.173 に答える
2

Froyo 2.3 (NFC をサポートする最小 SDK バージョン) も Ice Cream Sandwich 4.0 も、さまざまなチップと互換性がありません。

メーカーが別の NFC チップを搭載した新しい携帯電話を発売するのは、そのようなチップを使用して Android の NFC クラス、特に NfcManager クラスとローカル NFC アダプターを表す NfcAdapter クラスとのインターフェイスを使用するドライバーを誰かが作成したためです。

最良のシナリオとしては、Android NDK を使用して低レベルの C/C++ クラスを作成し、何らかの方法で外部 NFC カード リーダーと Android と通信してから、NDK を使用してさらにカスタム プログラミングを行い、SDK で NfcAdapter を検出して検出することができます...また、成功するという保証はありません。

そして... http://www.alibaba.comにアクセスして NFC リーダーを搭載したタブレットをインポートすることを考えている場合は、よく考えてください。NXP Semiconductors チップが Android Beam で行うすべてのことを実行できない可能性があるからです。 (TM) に対応し、NFC-A、B、F、V、または ISO-DEP でさまざまな I/O 操作をサポートします。

あなたの時間のために(そして、最近では時間は誰にとっても最も貴重な資産であるため). 最良の選択肢は、Galaxy Nexus S、DROID Razr、Xperia S、HTC Incredible などの NFC 電話をいくつか入手することだと思います。これらは箱から出してすぐに動作します。

于 2012-03-13T22:35:24.057 に答える
1

ACS NFC リーダーを使用すると、次のことが可能になります。

ここでは、ライブラリとサンプル コードのドキュメントを見つけることができます。ただし、データを書き込むオプションはないようです。NFC リーダーに書き込みたい場合は、送信関数を使用してバイト配列を送信します。

private static final byte READ = (byte) 0x30;
private static final byte WRITE = (byte) 0xA2;

これらのバイトは、送信機能のデフォルトの読み取りおよび書き込みバイトです。デフォルトの NFC プロトコルの完全なドキュメントは、ここにあります。

例:

    byte[] response = new byte[300];
        int responseLength;
        try {
            responseLength = mReader.transmit(slotNum, command, command.length, response, response.length);
        } catch (ReaderException e) {
            e.printStackTrace();
            return "executeCommand: error: " + e.getMessage();
        }

Slotnum は、使用するリーダーの番号です。私が正しければ、1 つのリーダー/USB デバイスを使用している場合、これは常に 0 です。

コマンド例:

new byte[] command {(byte) WRITE, 0x04, 0x06, 0x0a, 0x00, 0x21}

2 番目のバイトは、書き込み先のページ アドレスです。ページ 4 ~ 15 は書き込み可能です (ページ 0 と 1 は ID、ページ 2 はロックバイト、ページ 3 は OTP です。これらはすべて読み取り専用です)。

Read 関数は、WRITE 関数と同じように機能します。正しい読み取り設定のために、配列で 0x00 を 3 回送信するだけです。

new byte[] command {(byte) READ, 0x04, 0x00, 0x00, 0x00}

2 番目のバイトは、読み取るページ アドレスです。

于 2015-12-23T09:23:42.180 に答える
0

このビデオはあなたの問題に対する答え ですか ?

PS: 私はこの会社とは仕事をしておらず、彼らの解決策を試したことはありません。

于 2012-03-11T21:52:18.093 に答える