通过蓝牙在iOS和Android之间传输数据?

时间:2013-09-19 01:01:02

标签: android ios bluetooth gamekit bonjour

我一直在阅读如何使用GameKit通过蓝牙在iOS设备之间传输数据。我本身并不是在编写游戏,但确实需要在两个设备之间传输少量二进制数据。在两个iOS设备之间,这很容易。但是,我想知道是否可以通过相同的机制在iOS设备和Android设备之间传输数据。

有没有人遇到过可以解释如何执行此操作的文档/教程?它在技术上是否可行?或者苹果公司是否提出了某种限制措施来防止这种情况发生?

我发现的另一个选择是Bonjour通过蓝牙。对于这种类型的操作,这是一个更合适的选择吗?

3 个答案:

答案 0 :(得分:79)

本网站已多次询问此问题,最终答案是:否,您无法通过蓝牙将Android手机连接到iPhone 是Apple Apple有限制这阻止了这一点。

一些可能的替代方案:

  1. 如你所说,通过WiFi享受Bonjour。但是,我找不到一个全面的教程。
  2. 一些基于互联网的同步服务,如Dropbox,Google Drive,Amazon S3。这些通常具有多个平台的库。
  3. 通过套接字进行直接TCP / IP通信。 (How to write a small (socket) server in iOS
  4. 一旦解决了Android方面的问题(Communicating between iOS and Android with Bluetooth LE
  5. ,就可以实现蓝牙低功耗

    最酷的替代:使用Bump API。它具有iOS和Android支持,并且非常易于集成。对于小型有效载荷,这可能是最方便的解决方案。

    有关您无法将任意设备连接到iPhone 的详细信息。 iOS仅允许使用某些蓝牙配置文件,而无需使用Made For iPhone(MFi)认证(HPF, A2DP, MAP...)。实现通信所需的Serial Port Profile绑定到MFi成员资格。此程序的成员资格为您提供了必须添加到您的硬件的 MFi身份验证模块,并负责向iPhone验证设备。 Android手机没有此模块,因此即使可能建立物理连接,身份验证步骤也会失败。 iPhone和iPhone之间的通信是可能的,因为两端都能够自我验证。

答案 1 :(得分:2)

也许有点延迟,但技术已经发展,因此肯定有新的信息可以解释这个问题...

由于iOS还没有打开WiFi Direct和Multipeer Connectivity的API,我认为最好的方法是使用BLE,这两个平台都支持(有些比其他平台更好)。

在iOS上,设备可以同时充当BLE中心和BLE外设,在Android上情况更复杂,因为并非所有设备都支持BLE外设状态。此外,Android BLE堆栈非常不稳定(迄今为止)。

如果您的用例是功能驱动的,我建议您查看可以为您实现跨平台通信的框架和库,而无需您从头开始构建。

例如:http://p2pkit.io或谷歌附近

免责声明:我为Uepaa工作,为Android和iOS开发p2pkit.io。

答案 2 :(得分:2)

您可以使用p2pkit或其基于的免费解决方案:https://github.com/GitGarage。不能很好地工作,它确实是一个固定器,但是,它是免费的。适用于现在的少量数据传输。