您的位置:首页 > 移动开发 > Android开发

Android硬件编程NFC学习笔记(2)

2014-03-26 13:04 295 查看
如何读取含有NDEF数据的标签内容:

当Activity捕获意图并启动时,会有一个intent对象传递过来,其中就包含了标签上的信息:

EXTRA_TAG (必选): 一个代表读取到的标签的 Tag 对象.
EXTRA_NDEF_MESSAGES (可选): 从标签的 NDEF messages 中读取到的一个数据集合. 这个信息是强制的。
{@link android.nfc.NfcAdapter#EXTRA_ID (可选): 标签的低级别的ID.
首先用 Parcelable[] rawArray = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);  得到Parcelable对象存储标签里面的信息,然后用NdefMessage
存储这些信息。
一个读取标签信息的方法:
private String readFromTagDetail(Intent intent){
NdefMessage[] readResult = null;
   Parcelable[] rawArray = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);  
  
       if(rawArray != null){  
           readResult = new NdefMessage[rawArray.length]; 
           for (int i = 0; i < rawArray.length; i++) {
           
readResult[i] = (NdefMessage) rawArray[i];
           }
        }  
   return readResult.toString();
}  

一个读取标签的方法:
private String readFromTag(Intent intent){
//从一个intent得到一个标签对象
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);

   Parcelable[] rawArray = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);  
   NdefMessage mNdefMsg = (NdefMessage)rawArray[0];  
   NdefRecord mNdefRecord = mNdefMsg.getRecords()[0];  
   try {  
       if(mNdefRecord != null){  
           String readResult = new String(mNdefRecord.getPayload(),"UTF-8");  
           return readResult;
        }  
   }  
   catch (UnsupportedEncodingException e) {  
        e.printStackTrace();  
   };
return null;  
}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nfc android