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

本文主要介绍了在Android平台上如何读取NDEF数据标签的内容。当Activity捕获到NFC意图时,intent对象会携带标签信息,包括Tag对象、EXTRA_NDEF_MESSAGES数据集合以及可选的EXTRA_ID——标签的低级别ID。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何读取含有NDEF数据的标签内容:


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

首先用 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;  
}  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值