61

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

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

我发现的另一个选择是 Bonjour over Bluetooth。对于这种类型的操作,这会是更合适的选择吗?

4

3 回答 3

87

这个问题已经在这个网站上被问过很多次了,最终的答案是:不,你不能通过蓝牙将安卓手机连接到 iPhone是的,苹果有阻止这种情况的限制。

一些可能的替代方案:

  1. 正如您所提到的,通过 WiFi 享受 Bonjour。但是,我找不到它的全面教程。
  2. 一些基于互联网的同步服务,如 Dropbox、Google Drive、Amazon S3。这些通常具有适用于多个平台的库。
  3. 通过套接字直接进行 TCP/IP 通信。(如何在 iOS 中编写一个小型(套接字)服务器
  4. 一旦 Android 端的问题得到解决,低功耗蓝牙将成为可能(使用蓝牙 LE 在 iOS 和 Android 之间进行通信

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

为什么不能将任意设备连接到 iPhone 的详细信息。iOS 仅允许在没有 Made For iPhone (MFi) 认证(HPF、A2DP、MAP...)的情况下使用某些蓝牙配置文件。实现通信所需的串行端口配置文件绑定到 MFi 成员资格。该计划的成员资格为您提供MFi 身份验证模块,该模块必须添加到您的硬件中,并负责对 iPhone 进行设备身份验证。Android 手机没有此模块,因此即使可以建立物理连接,身份验证步骤也会失败。iPhone 到 iPhone 的通信是可能的,因为两端都能够验证自己。

于 2013-09-24T14:25:43.630 回答
2

您可以使用 p2pkit,或者它基于的免费解决方案:https ://github.com/GitGarage 。效果不是很好,而且它肯定是一个固定器,但是它,嗯,免费的。目前适用于少量数据传输。

于 2017-04-25T06:42:23.300 回答
2

也许有点延迟,但自那以后技术已经发展,所以肯定有新的信息围绕着这件事引起了新的关注......

由于 iOS 尚未为 WiFi Direct 开放 API,而 Multipeer Connectivity 仅适用于 iOS,我相信解决此问题的最佳方法是使用两个平台都支持的 BLE(有些平台比其他平台更好)。

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

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

例如: http: //p2pkit.io或 google 附近

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

于 2016-05-03T16:09:04.753 回答