2012-05-02 112 views
1

我試圖在三星GALAXY Nexus S.讀一個NFC標籤

@Override 
protected void onResume() { 
    super.onResume(); 
    String nachricht = ""; 
    if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(getIntent().getAction())) { 
     Parcelable[] rawMsgs = getIntent() 
       .getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES); 
     if (rawMsgs != null) { 
      NdefMessage[] msgs = new NdefMessage[rawMsgs.length]; 
      for (int i = 0; i < rawMsgs.length; i++) { 
       msgs[i] = (NdefMessage) rawMsgs[i]; 
       nachricht = nachricht + " " + msgs; 
      } 

      Log.e("WriteTagApp", nachricht); 
     } 
    } 

} 

隨着Log.e讀取NFC標籤( 「WriteTagApp」,nachricht)的內容;我的應用程序將標籤的消息寫入調試器。 它看起來像這樣:[Landroid.nfc.NdefMessage; @ 4184ce18

我似乎無法理解這裏發生了什麼,以及如何獲得消息的實際內容。 我該怎麼做?

回答

1

NDefMessage不是一個字符串,它是一個對象。通過連接它,您只需添加其「toString」方法的輸出即可。相反,您需要查看NdefMessage中的NdefRecords,並從那裏的有效負載字段中提取數據。

+0

啊謝謝。 添加了一個EditText字段,其中,I輸入有效載荷 'mNote.setText(新字符串(消息[0] .getRecords()[0] .getPayload()));' 這種方式可以讀的第一記錄文本所在的標籤。 – hamena314