2016-09-28 5 views
-1

NFCタグに外部レコードが正常に書き込まれました。サードパーティのタグリーダーを使って書かれた外部レコードを評価すると、適切な値が表示されます。これは単一の正の整数です。NFC外部レコードが間違った形式で返されていますか?

しかし、「if」ステートメントにその値を組み込むために(Toastを使用して)タグにペイロード(外部レコード)の値が何であるかを見るために私のコードを実行すると異なる値。これまでのところ、私は以下を見た:

B @ 41fb4278またはB @ 41fb1190。

この時点で、外部レコードの値はちょうど "2"です。どのようにして返すことができますか?

protected void onNewIntent(Intent intent) { 
    super.onNewIntent(intent); 


    if(intent.hasExtra(NfcAdapter.EXTRA_TAG)) 

    { 
     Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); 
     byte[] payload = "2".getBytes(); ///this is where the ID (payload) for the tag is assigned. 

     NdefRecord[] ndefRecords = new NdefRecord[2]; 
     ndefRecords[0] = NdefRecord.createExternal("com.example.bmt_admin", "externaltype", payload); 
     ndefRecords[1] = NdefRecord.createApplicationRecord("com.example.bmt_01"); 
     NdefMessage ndefMessage = new NdefMessage(ndefRecords); 
     writeNdefMessage(tag, ndefMessage); 

     Toast.makeText(this, "NFC Scan: " + payload, Toast.LENGTH_SHORT).show(); 
    } 

} 

ありがとうございました!

答えて

0

​​は、バイト[]として定義されます。 toast()ステートメントで​​を使用する場合は、その配列へのポインターを使用します。したがって、配列のアドレスが表示されます。バイト[]の文字列表現を取得する場合は、たとえば次のように使用できます。

String s = new String(payload); 
関連する問題