Tag: 果冻豆

用蓝牙LE在iOS和Android之间进行通信

我有一个使用CoreBluetooth在iPad(中央)和iPhone(外设)之间进行通信的应用程序。 我有一个有两个特点的服务。 我有一个运行最新的Android 4.3与BTLE支持的Nexus 7。 Android在BTLE的风潮上稍微晚了一点,但似乎他们已经接近iOS的样子了,最初他们只支持作为中央处理器的外设模式进入后期版本。 我可以加载示例Android BTLE应用程序并浏览附近的外围设备。 通过我的iPhone广告作为外设,我可以在Android端的附近外围设备列表中看到来自CBAdvertisementDataLocalNameKey的值。 我可以连接到iPhone,连接时蓝牙符号从浅灰色变成黑色。 连接总是持续10秒,然后断开连接。 在Android方面,我应该看到一个可用的服务和特性列表在连接时立即出现。 我已经certificateAndroid代码安装正确,因为我可以将它连接到TI的CC2541DK-SENSOR硬件,并且在连接到它时列出所有服务和特性。 我花了几天的时间解决这个问题,但没有成功。 问题是我无法确定哪个设备出现错误,从而导致断开连接。 CBPeripheralManagerDelegate在连接阶段或服务发现阶段没有callback,所以我不知道在哪一点发生错误(如果错误是在iOS端)。 在Android端调用一个方法来启动服务发现,但是他们的callback“onServicesDiscovered”永远不会被调用,这是令人困惑的。 有没有什么办法可以深入到iOS端的BTLE通信的内部,看看发生了什么事情,并确定发生了什么错误?