(第三篇:开发NFC应用的前期配置工作)
前两篇我们对NFC有了概念上的了解,或许你可能还不是非常了解整个过程,那么没关系,本文将对前两篇进行一个总结并开始一个实际的开发操作。
现在,你应该能够知道这些:NFC就是一个短距离无线通信技术,该技术在手机设备最基本的运用便是让手机去感应一个如纸张薄的标签,手机设备需要在4cm以内才能对NFC标签进行感应识别。感应的过程无需人为去匹配两端,是自动而快速的。手机一旦感应到标签,那么系统将会对标签内容进行解析,解析到的不同结果将影响到手机执行的情况。比如如果标签是NDEF格式的数据类型那么手机将会优先打开最适合处理该数据类型的应用,但如果标签不属于NDEF格式或者里面的资源类型(映射到MIME或URI过程)不能确定时,手机便采用另一种消息Intent来触发手机。一旦手机能够获取到标签的内容,那么手机就可以利用这些信息进行一些操作了。至于如何利用这些数据就是开发者个人的后续工作了,这里不做讨论。
在遵循NDEF格式规范的标签中,一旦手机扫描到该目标,信息都将是封装在一个个NdefRecord记录中,NdefRecord再被封装进NdefMessage消息类,此消息类最后被封装进一个Intent中去触发手机从而打开相应Activity。这也是数据在整个过程的流通形式,而开发者便可在打开的Activity中去获取Intent里面的信息了。
废话不多说,我们直接切入开发的正题,在准备开发工作前,你首先要有一个支持NFC感应的手机或平板设备。因为NFC感应也是硬件支持的结果,你需要在的安卓工程中声明你使用NFC的权限:
在AndroidManifest.xml 中添加如下权限声明:
<uses-permission android:name="android.permission.NFC"/>
记住,这是第一步,虽然不起眼,但还是要养成这种习惯,避免忘记声明的低级错误。
接下来,你还得声明你工程最低SDK版本,因为较低版本的Api中对NFC的支持情况没那么好,比如API Level 9 只限制在 ACTION_TAG_DISCOVERED 类型的调度,而对NDEF格式的消息类型也支持不多,对其它的标签类型就几乎不支持了。而在API Level 10中则包含了较复杂的读写操作,API Level 14提供了更加方便的推送NDEF数据到另一设备的方法,这可通过Android Beam实现。更让人欣喜的是,API Level 14使在创建NDEF数据的记录时大大简单快捷了。 所以,你可以在AndroidManifest.xml 中添加如下声明:
<uses-sdkandroid: