作为谷歌姜饼系统最大特色之一,该系统还提供了对近场通讯(NFC)技术的支持。而所谓的近场通讯 (NFC)技术则是一种近距离的高频无线通信技术,可用距离约为 10 厘米,可以实现电子身份识别或者数据传输,比如信用卡、门禁卡等功能。由飞利浦公司和索尼公司共同开发的 NFC 是一种非接触式识别和互联技术,可以在移动设备、消费类电子产品、PC 和智能控件工具间进行近距离无线通信。借助这项技术,用户可以用手机替代公交卡、银行卡、员工卡、门禁卡、会员卡等非接触式智能卡,还能在轻松的读取广告牌上附带的 RFID 标签信息。 过去诺基亚 6131i 等产品曾经推出过带有 NFC 功能的手机,并且该技术在日本手机中也同样是非常的普及。在北京、广州、厦门等城市都有成功使用先例。
平台还提供了有限的对等通信协议(为了使数据分组从源传送到目的地,源端OSI模型的每一层都必须与目的端的对等层进行通信,这种通信方式成为对等层通信。)和API。前台Activity可以使用API来注册一个NDEF(NFC Data Exchange Format :NFC数据交换格式)的信息,将被推到其他NFC设备连接时。
API中提供的NFC高级处理标签可以在NFC标签发现和发送数据时对应用程序进行更多的控制,之前版本中,平台是使用单步的intent传递来通知那些感谢的应用程序一个tag被发现。现在的版本则使用四个过程来确保 一个tag被传递到任何其他的程序被发现之前对其的控制(android.nfc.NfcAdapter.enableForegroundDispatch()
)。新的发送过程同样需要进行tag内容和tag术语的应用监听(依赖的intent action是android.nfc.action.NDEF_DISCOVERED,
android.nfc.action.TECH_DISCOVERED
)。
The NFC API 提供了 android.nfc
和 android.nfc.tech
这两个包。关键类如下:
NfcAdapter
:对设别上NFC硬件的描述。NdefMessage
,对 NDEF 数据消息,对设备间消息记录数据和tag传输的标准形式 进行了描述。 一个NDEF消息可能包含多个不同类型的消息记录, 应用程序可以通过 NDEF_DISCOVERED
, TECH_DISCOVERED
, 或者TAG_DISCOVERED
Intents来进行接受。NdefRecord
, 包含在NdefMessage
中,记录的是发送传递的原始数据。Tag
, 描述了设备上的标签.不用的标签支持依赖于 tag
TagTechnology。TagTechnology
:整合了支持上面(1.0处)读写访问标签技术所需要的标签属性和I/O操作。 NFC通信依赖于设置的无线技术,2.3平台的系统中的NFC API不管基础设备是否支持总是存在的,判断设备是否支持NFC可以通过getDefaultAdapter(Context)和
context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_NFC)的返回值,如果是false表示不支持。
同样 使用 NFC API 应用程序必须在manifest文件中添加许可权限<uses-permission android:name="android.permission.NFC">
NFC的应用场景有很多,但Android 2.3目前API只提供了电子标签阅读器的功能。相信随着Android的版本升级,后续会增加很多应用场景和 API。
功能是少一点,但从无到有的第一步总是不容易的。从架构上看,至少有以下几部分的改动: