NFC的安卓事儿(第五篇)


(开发阶段:详解如何写数据到标签)

还是接上一篇的话题,当你的应用开始接收传来的Intent时,应该在哪些环节进行处理?首先,你应该在onCreate()onResume()进行第一次感应后的解析。而当你的Activity已经显示在屏幕时,如果再去感应标签那么你就应该让你的这个Activity继续处理。此时,会经过onNewIntent(),关于此方面可参考该文章进行了解:http://blog.csdn.net/zeruiy/article/details/22987105

那么,接下来我们应该对写入标签进行初步的了解,这里还是用NDEF格式进行操作。因为写入的数据可定义多种类型,本文还是从基本的text文本开始举例,即向标签打入一小段文本信息。

之前已经提及过MIME_MEDIA类型,用于标识信息的内容格式,详情可参见http://blog.csdn.net/zeruiy/article/details/22988411 进行相关的扩展。

在写入标签数据前需要有一个连接过程,即设备和标签处于连接状态才可进行数据写入:

 

和读取数据一样,读取到的标签数据是以某种形式包装起来的,我们写入时也应该对数据进行一个包装,即最终以NdefMessage的对象传输:

 

这段代码将文本数据封装进NdefRecord对象中,NdefRecord.TNF_MIME_MEDIA标明了这是一个媒体内容格式,text/plain表明是数据一个text文本。

接下来就是将NdefRecord对象组封装进NdefMessage对象了,由此再把NdefMesaage对象完整打入Ndef标签中:

 

这里要注意的是,你可以构建多个NdefRecord对象存储要传输的数据。这里只是选择一个ndefRecord进行试验。

具体情况可参见本次Demo的代码,因为时间关系只是做了简单的注释,如果有疑问或建议可向我评论或私信,本人会尽力回复。在下一篇中我们将对读写标签方面进行扩展探究,向大家展示如何在感应标签时精准匹配要调用的应用程序,另外,也会学习如何创建多种内容格式的标签数据从而达到不同的效果。清明节快乐,下一篇再见!


 Demo源代码下载地址:http://download.csdn.net/detail/zeruiy/7150153

 

你可能感兴趣的:(NFC的安卓事儿(第五篇))