0

FakeTagsActivity を使用しています

FakeTagsActivity — スキャンされたかのようにタグを起動するアクティビティ。これは、NFC 対応のデバイスまたはタグにアクセスできない場合に便利です。

いくつかの偽のデータを定義します:

 /**
     * A plain text tag in english.
     */
    public static final byte[] ENGLISH_PLAIN_TEXT =
        new byte[] {(byte) 0xd1, (byte) 0x01, (byte) 0x1c, (byte) 0x54, (byte) 0x02, (byte) 0x65,
            (byte) 0x6e, (byte) 0x53, (byte) 0x6f, (byte) 0x6d, (byte) 0x65, (byte) 0x20,
            (byte) 0x72, (byte) 0x61, (byte) 0x6e, (byte) 0x64, (byte) 0x6f, (byte) 0x6d,
            (byte) 0x20, (byte) 0x65, (byte) 0x6e, (byte) 0x67, (byte) 0x6c, (byte) 0x69,
            (byte) 0x73, (byte) 0x68, (byte) 0x20, (byte) 0x74, (byte) 0x65, (byte) 0x78,
            (byte) 0x74, (byte) 0x2e};

このような独自のデータを作成するにはどうすればよいですか?

よろしく

4

3 に答える 3

1

データは、1 つ以上の NDEF レコードを含む、いわゆる NDEF メッセージです。NdefMessageこれらは、 クラスとを使用して作成できますNdefRecord。レコードにはタイプとペイロード (データ) があり、場合によっては ID があります。

表示する例は、テキスト レコードを含む NDEF メッセージです。その種のレコード (およびその他) の正確な詳細は、NFC フォーラムのサイトから入手できます。

于 2012-09-06T11:56:21.237 に答える
1

ファイルの形式で多くの「偽の」データを定義できるようにする Eclipse プラグインとしてNDEF エディターを作成しました。

res/raw ディレクトリからファイルをロードするのは簡単です。

于 2012-09-07T08:27:26.587 に答える
0

のように見える

new byte[] {(byte) 0xd1, (byte) 0x01, (byte) 0x1c, (byte) 0x54, (byte) 0x02, (byte) 0x65,
        (byte) 0x6e,

NFC タグ ヘッダー ("�Ten") で、残りは実際のテキスト ("Some random English text.") です。

編集- これらの数字の一部は、目に見える文字 (0x01 と 0x02) に変換されないことに注意してください。これが、6 つの数字シーケンスと 4 文字しかない理由です。これが、(単に文字列を使用するのではなく) 彼らが行っているように byte[] を構築しなければならなかった理由でもあります - 単純に "�Ten" を文字列にコピーするのは同じことではありません - 試してはいけません :-)

これらのバイトはASCII文字の16進コードです-PHPでデコードできました-

php -r "print chr(0xd1).chr(0x01).chr(0x1c).chr(0x54) . chr(0x02) . chr(0x65).chr(0x6e).chr(0x53).chr(0x6f).chr(0x6d).chr(0x65).chr(0x20).chr(0x72).chr(0x61).chr(0x6e).chr(0x64).chr(0x6f).chr(0x6d).chr(0x20).chr(0x65).chr(0x6e).chr(0x67).chr(0x6c).chr(0x69).chr(0x73).chr(0x68).chr(0x20).chr(0x74).chr(0x65).chr(0x78).chr(0x74).chr(0x2e);"

�TenSome ランダムな英語のテキスト。

ASCII テーブル - http://www.asciitable.com/

他のタグを作成したい場合は、送信したいタグのタイプの仕様を調べる必要があります - Google がお手伝いします

編集- コメントごとに変換するための PHP コード (出力を実行/表示できるようにするためだけに大量のコードを記述しなければならなかったとしても、Java 関数を調べる気がしません - PHPこのようなものでははるかに高速です)

$text = 'Some random english text.';
for ($i = 0; $i < strlen($text); $i++) {
   print " (byte) 0x" . dechex(ord(substr($text,$i,1))) .',';
}
于 2012-09-06T03:33:26.677 に答える