web-dev-qa-db-ja.com

Android電話でnfcタグをエミュレートする方法

Android phone(nexus s、sdk v15))があり、タグエミュレーションを使用してnfc-reader/writer-modeで実行されている開発ボードに文字列を送信します。 Androidによって公式にサポートされているため、ドライバーに直接アクセスすることでネイティブに実行できます(?)。

誰かがこれを以前に行った例や、これを行うアプリがあります(できればオープンソースですか?)

私はグーグルでいくつかのことを見つけましたが、一般的にこれをしないことが推奨されているか、人々がそれをどのように可能にするか、どのように(非常に一般的に)それをやったかについて話しますが、コードや正確なアドバイスは見つかりませんでした。

セキュリティで保護された要素にアクセスしたり、ベンダー/プロバイダーによる承認が必要なスマートカードのようなことをしたくありません。文字列を転送したいだけです。また、これはp2p経由のAndroid apiメソッドによって実行できることも知っていますが、これはボードではうまく機能しないため、このアプローチを試してみます。

13
sinned

KitKat 4.4を実行しているデバイスの場合

Android KitKat 4.4 で電話をNFC card として機能させる機能は オペレーティングシステムに組み込まれています そのため、CyanogenmodまたはカスタムROMに依存する必要がなくなりました。電話自体がMifare Classicタグとして機能することはありませんが、電話を ACR122 reader と通信させることで素晴らしい結果が得られたので、できればこのオプションをお勧めしますデバイスで4.4を取得します。

4.4未満で実行したい場合で、Cyanogenmodを使用したい場合

アプリケーションをデバイスにロード して、NFCを介してリーダーと通信させることができますが、実行する必要があります Cyanogenmod 、この機能は CM 9.1からの提示

Gingerbreadで実行したい(古い回答)

はい、それは可能であり、それを有効にするために2.3.4用に公開されたパッチがありました。あなたが読むためにいくつかのリンクを投稿します。

カードエミュレーション機能を有効にするために、他のパッチとともに2.3.4 Gingerbread ROMをデバイスにフラッシュする必要があります。そうしない場合はあまり役に立ちませんが、私が知る限り、それが機能する唯一の方法です。私は実際にこれを実際にテストしていませんが、ユーザーのコメントはそれが機能することを示唆しています。

プロセス全体を説明するブログへのリンクを次に示します。 http://techshek4u.blogspot.co.uk/2012/01/applying-card-emulation-patch-to_03.html

以下は、それを有効にするための2.3.4のパッチを含む元のフォーラム投稿へのリンクです。
http://forum.xda-developers.com/showthread.php?t=1281946

また、AndroidおよびNFCの技術的知識に応じて、さまざまな開発者が機能させようとする元のディスカッションへのリンクは、多少面白かったかもしれません。 https://groups.google.com/forum/#!msg/Android-developers/1fw1qfFqpGc/6dlzvTqExN4J

注意:NFCGuyの回答によると、「ICSを実行している場合は、電話をGBにダウングレードする必要はありません。NFCファームウェアをGBと再度互換性があるようにダウングレードすることはできないため、NFCデバイスをGBでフラッシュすると、単に機能しなくなります。」

14
Peanut

デバイスをルート化すると、カードエミュレーションモードをオンにするアプリを作成できます。それほど難しくありません。 https://stackoverflow.com/a/10506299/1202968

ただし、カードエミュレーションはセキュアエレメントによって完全に処理されます。アプリは、転送中のデータにアクセスできません。それを制御する唯一の方法は、Secure ElementにJava Cardアプレットを作成してインストールすることです。ただし、それを行うには、秘密の認証キーのみにアクセスする必要があります。 Googleに知られています。

PS:ICSを実行している場合、電話をGBにダウングレードすることを気にしないでください。 NFCファームウェアをGBと再度互換性を持つようにダウングレードすることはできません。そのため、デバイスをGBでフラッシュすると、NFCは機能しません。

3
NFC guy

http://developer.Android.com/guide/topics/connectivity/nfc/hce.html によると、ホストカードエミュレーションはAndroidによって公式にサポートされるようになりました。

2
uploader33