0

私は2つのAndroidアプリケーションを開発しました。1つ目はNFCタグに書き込むためのもので、2つ目は私が書いた内容を読み取るためのものです。

したがって、*最初のアプリケーション(WriteNFC):タグに書き込んでいます。2つのNDEFレコードを含む1つのNDEFメッセージ:最初のレコードは「テキスト」タイプで、2番目のレコードは「URL」タイプです。

2番目のアプリケーション(ReadNFC):NDEFメッセージを読み取って表示するために、タグをスキャンしますが、完全ではありません。画面には2番目のレコード(URL)のみを表示します。私がやりたいのは、ユーザーがNFCタグを読み取るためにインストールした別のAndroidアプリケーションを選択した場合、このアプリケーションは最初のレコード(テキスト)のみを表示でき、2番目のレコード(URL)は表示できないようにする必要がありますか?

要約すると、NFCタグをスキャンすると、私のアプリケーション(ReadNFC)ではURL(http://www.stackoverflow.com)だけが表示され、他のアプリケーションではテキスト(Hello World)だけが表示されます。 。

4

2 に答える 2

1

これは、標準の NDEF Text および URI レコード タイプを使用することはできません。

ただし、アプリケーションのみが使用できる外部タイプ レコードまたは不明なレコードを使用して、独自のレコード ペイロード タイプを作成できます。

Android Application Record もチェックしてください。

于 2012-11-29T13:05:53.773 に答える
0

これは、最初のアプリケーション (WriteNFC) で行ったことです。

private NdefRecord createRecord1(String data)
{  
   byte[] payload = data.getBytes(Charset.forName("UTF-8"));
   byte[] empty = new byte[] {};
   return new NdefRecord(NdefRecord.TNF_ABSOLUTE_URI, empty, empty, payload);
}
private NdefRecord createRecord2(String data)
{  
   byte[] payload = data.getBytes(Charset.forName("UTF-8"));
   byte[] empty = new byte[] {};
   return new NdefRecord(NdefRecord.TNF_ABSOLUTE_URI, payload, empty, empty);
}

そして、2番目のアプリケーション(ReadNFC)で

NdefRecord cardRecord = msg.getRecords()[1];//Extract the second Record
String url_data = new String(cardRecord.getType());//Read data type

結果:

自分のアプリケーション (ReadNFC) で読み取ると、もちろん、「レコード タイプ」で保存した 2 番目のレコードのペイロードのみが画面に表示されました。しかし、サードパーティのアプリケーション、特にネイティブにインストールされた (「タグ」) アプリケーションを使用すると、最初のレコードが正しく表示され、2 番目のレコードは空のフィールドになります。したがって、まだ2番目のレコードが表示されるため、まだ機能していません スクリーンショット

于 2012-12-07T15:41:57.210 に答える