我一直在阅读如何使用GameKit通过蓝牙在iOS设备之间传输数据.我本身并不是在编写游戏,但确实需要在两个设备之间传输少量二进制数据.在两个iOS设备之间,这很容易.但是,我想知道是否可以通过相同的机制在iOS设备和Android设备之间传输数据.
有没有人遇到过可以解释如何执行此操作的文档/教程?它在技术上是否可行?或者苹果公司是否提出了某种限制措施来防止这种情况发生?
我发现的另一个选择是Bonjour通过蓝牙.对于这种类型的操作,这是一个更合适的选择吗?
我有一个使用CoreBluetooth的工作应用程序在iPad(中央)和iPhone(外围设备)之间进行通信.我有一项服务有两个特点.我有一台运行最新Android 4.3并支持BTLE的Nexus 7.Android有点迟到了BTLE的潮流,但看起来他们正在接近它,就像iOS的做法一样,最初他们只支持在后续版本中作为外设模式的中心.我可以加载示例Android BTLE应用程序并浏览附近的外围设备.将我的iPhone广告作为外围设备,我可以在Android端附近的外围设备列表中看到CBAdvertisementDataLocalNameKey的值.我可以连接到iPhone,蓝牙符号在连接时从浅灰色变为黑色.连接始终持续10秒,然后断开连接.在Android方面,我应该会在连接时看到可用服务和特征列表.我已经证明Android代码设置正确,因为我可以将它连接到我所拥有的TI CC2541DK-SENSOR硬件,并在连接时列出所有服务和特性.
我花了最后几天对问题进行排查,但没有成功.问题是我无法确定哪个设备出现错误并因此导致断开连接.在连接阶段或服务发现阶段没有来自CBPeripheralManagerDelegate的回调,所以我不知道错误发生在什么时候(如果错误发生在iOS端).在Android方面,调用一个方法来启动服务发现,但是从不调用它们的回调"onServicesDiscovered",这是令人困惑的.有什么方法可以深入了解iOS端BTLE通信的内容,看看发生了什么,并确定发生了什么错误?
ios core-bluetooth bluetooth-lowenergy android-bluetooth android-4.3-jelly-bean
我刚开始使用Android,并使用蓝牙LE在Android Studio中设置了一个API 21项目.
深入了解BluetoothDevice,向我展示了ConnectGatt()方法的两个签名:
public BluetoothGatt connectGatt(Context context, boolean autoConnect,
BluetoothGattCallback callback)
Run Code Online (Sandbox Code Playgroud)
和
public BluetoothGatt connectGatt(Context context, boolean autoConnect,
BluetoothGattCallback callback, int transport)
Run Code Online (Sandbox Code Playgroud)
我想使用第二个,但构建失败:
错误:(127,26)错误:类BluetoothDevice中的方法connectGatt不能应用于给定类型; required:上下文,布尔值,找到BluetoothGattCallback:Context,boolean,BluetoothGattCallback,int reason:实际和形式参数列表的长度不同
似乎编译器设置与Android Studio中的源代码不匹配.
我怎样才能解决这个问题?