2014-12-04 66 views
3

我正在尝试使用NFC来配对两个Android BLE设备。我遵循NFC论坛发布的最新规范& BT SIG,名为Bluetooth Secure Simple Pairing Using NFC,我对静态切换感兴趣。这意味着我会用一个设备在NFC标签(根据上述规格格式化)上写入NDEF消息,然后另一个读取该标签并保存信息以启动BLE配对。我正在使用Android 4.4.2。而且这种方法可以很好地与蓝牙一起工作,不需要特定的应用来管理切换,Android就可以完成这项工作!通过NFC在Android上进行BLE配对

但是,使用BLE这种方法不起作用。我认为这个问题与我想在NDEF消息中写入的MIME类型有关。对于蓝牙是application/vnd.bluetooth.ep.oob而对于BLE是application/vnd.bluetooth.le.oob。当我点击设备/标签时,Android检测到有一个BLE MIME类型的新标签,但不执行任何操作,只是向我显示“收集到新标签”的屏幕,就像它是未知的MIME类型。我注意到NFC论坛规范于2014-01-09发布,并且在Compatibility document for Android 4.4中没有关于BLE切换的参考,只是蓝牙。

有人知道是否支持NFC的BLE配对,并且可以在Android 4.4上运行?并在Android 5上?

回答

2

我设法测试运行Android 5的Nexus 6上的NFC/BLE切换,并且MIME类型application/vnd.bluetooth.le.oob已被认可!因此限制在Android版本中...

+0

你介意分享你是如何做到这一点的? – shreyashirday 2015-06-30 14:43:48

+1

@shreyashirday我简单地通过[createMime \(mimeType,mimeData \)](http://developer.android.com/reference/android/nfc/NdefRecord.html)函数创建了一个NdefRecord函数,传递字符串'application/vnd。 bluetooth.le.oob'作为mimeType。 mimeData(有效负载)取决于一些选项,您可以在上述文档[\(Bluetooth安全简单配对使用NFC \)]中找到更多详细信息(http://members.nfc-forum.org/apps/group_public/download)。 PHP/18688/NFCForum-AD-BTSSP_1_1.pdf)。在第32页也有一个例子(payolad内容从LE地址字段开始)。 – Mirky89 2015-07-06 08:48:36

+0

@shreyashirday但是,唯一的必填有效负载字段是BLE MAC地址和节点的BLE角色...然后您可以将NdeRecord传递给[NdefMessage](http://developer.android.com/reference/android/nfc /NdefMessage.html)构造函数,获取NdefMessage在标签上可写。通过这种方式,通过使用Android 5+设备轻触格式化标签,NDEF消息会自动识别为BLE切换请求。 – Mirky89 2015-07-06 08:58:02

0

如果要读取特征,则需要使用该属性的读取方法。使用SDK 4.3给出的示例效果很好。除三星外,其他所有设备中也存在连接问题。