Tag: android bluetooth

用蓝牙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通信的内部,看看发生了什么事情,并确定发生了什么错误?

Android设备可以充当iBeacon吗?

Android设备可以作为一个iBeacon,并找出其他Android设备何时进入其范围? 那些其他Android设备是否需要启用蓝牙? 如果客户进入我的商店,而且他的设备上没有安装我的应用程序,iBeacon可以工作,还是必须先安装应用程序? 有这么多的客户每天都来我们的商店,但如果他们没有安装我的应用程序,iBeacon概念的工作?

Android 4.3蓝牙低功耗不稳定

我目前正在开发一个应用程序,将使用蓝牙低功耗(Nexus 4testing)。 在开始使用Android 4.3中的官方BLE API后,我注意到在我第一次连接设备后,我很less能够成功连接到该设备或任何其他设备。 按照这里的指导,我可以成功地连接到设备,扫描服务和特性,并且读/写/接收通知没有任何问题。 但是,在断开和重新连接之后,我经常无法扫描服务/特性或者无法完成读/写。 我无法在日志中find任何内容来指出发生这种情况的原因。 一旦发生这种情况,我必须卸载应用程序,禁用蓝牙,并重新启动手机,才能重新开始工作。 每当一个设备断开连接时,我确保在BluetoothGatt对象上调用close()并将其设置为null。 任何见解? 编辑: 日志转储:对于这些日志,我植根了我的手机,并在/etc/bluetooth/bt_stack.conf中增加了相关项目的跟踪级别 成功连接 – 重新启动手机并安装应用程序后首次尝试。 我能够连接,发现所有的服务/特性,以及读/写。 尝试失败1 – 这是从上面的成功连接断开后的下一次尝试。 看来我能够发现特征,但第一次尝试读取返回一个空值,然后很快就断开连接。 尝试失败2 – 一个例子,我甚至无法发现服务/特性。 编辑2: 我尝试连接的设备基于TI的CC2541芯片。 我获得了TI SensorTag (也是基于CC2541),并发现TI昨天为SensorTag发布了一款Android应用 。 但是,这个应用程序也有同样的问题。 我在另外两台Nexus 4上testing了这个结果:第一次或第二次连接SensorTag成功,但是(根据日志)之后没有发现服务,造成各种崩溃。 我开始怀疑这个芯片是否有问题?