5

パーソナライズされたタグを設計するアプリがあります。これは、Androidスマートフォンで検出されると、コンテンツを含む別のアプリを起動します。それはすべて正常に機能し、読み取り専用のnfcタグを作成する方法を知っています。問題は、NFCタグを他のアプリのユーザーだけが読み取れるようにしたいということです。ただし、必要に応じて、これらのタグを変更して書き換えることもできます。しかし、私はユーザーが自分でやることを防ぎたいです。そのため、ndef.makeReadOnly()は私には適していません。

誰かが私を助けることができますか?

4

2 に答える 2

7

使用する正確なタグによって多少異なります。AndroidがサポートするNDEFメッセージを保存するための標準のNFCフォーラムタグタイプには、このために定義された特定の機能はありません。したがって、AndroidAPIもそれを提供しません。のみmakeReadOnly()があり、ほとんどの場合、タグは不可逆的に読み取り専用になります。

ただし、実際に必要なNFC機能を実装するタグ内のチップを見ると、多くの場合、より多くの機能を提供します。これらの追加機能には、書き込み用のアクセス制御が含まれる場合があり、チップを必要に応じて構成できます。

いくつかの例(私が最もよく知っているので、すべてNXPによって製造されています):

  1. MIFAREクラシック:メモリセクターは2つのキーで保護されています。1つのキーは読み取り専用に構成でき、もう1つのキーはメモリの書き込みに使用できます。注意:すべてのAndroidデバイスがこれらにアクセスできるわけではありません!
  2. MIFARE Ultralight C:上書きを防ぐために追加のパスワード保護を提供できます
  3. MIFARE DESFire:キーなしの読み取り専用アクセスを含む、複数の認証キーとアクセス権を構成できます
  4. ICODE SLI(X)-S:上書きを防ぐために追加のパスワード保護を提供できます

これらのタグのほとんどは、通常、オンラインで販売されています。ただし、構成を行う方法に関するすべての情報を収集するには、インターネットで少しハントする必要があります。ほとんどの場合、利用可能なPCソフトウェアがあります。

于 2013-03-29T12:38:05.040 に答える
2

NFCタグを「読み取り専用」にする唯一の100%の方法は、makeReadOnly()を呼び出すことですが、これは元に戻せません。

次のような「すぐに使える」ソリューションを使用できます。

  1. NFCタグにデータを書き込まず、代わりにローカル(データが1つのデバイスに制限されている場合)またはサーバー/クラウド(データがグローバルの場合)に保存します

  2. NFCタグID(getByteArrayExtra(NfcAdapter.EXTRA_ID))を保存したデータにリンクします

  3. NFCタグが読み取られたら、そのIDを取得し、適切なソース(ローカルまたはクラウドDB)を介して適切なデータを見つけます

.. 2番目のアプリが「サードパーティアプリ」であり、上位の魂で動作できない場合は、独自のNFC読み取りアプリ(適切なmimeTypeフィルターを使用するインテント)を登録し、sendIntent(ポイント番号3)を使用してデータ(ポイント3)をメインアプリに渡すことができます。または同様のサポートされている方法)。

それが役に立てば幸い!

于 2013-03-27T21:53:34.803 に答える