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

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

有没有人遇到过说明如何做到这一点的文档/教程? 在技术上甚至可行吗? 还是苹果采取了某种限制措施来防止这种情况发生?

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

Shadowman asked 2019-10-09T00:19:51Z
3个解决方案
79 votes

这个问题在这个网站上已经问过很多次了,最终的答案是:不,您不能通过蓝牙将Android手机连接到iPhone,是的Apple对此有限制。

一些可能的选择:

  1. 如前所述,通过WiFi的Bonjour。 但是,我找不到完整的教程。
  2. 一些基于Internet的同步服务,例如Dropbox,Google Drive,Amazon S3。 这些通常具有用于多个平台的库。
  3. 通过套接字直接进行TCP / IP通信。 (如何在iOS中编写小型(套接字)服务器)
  4. 解决Android方面的问题后,低功耗蓝牙将成为可能(iOS和Android之间通过Bluetooth LE进行通信)

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

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

allprog answered 2019-10-09T00:20:50Z
2 votes

也许有些延迟,但是此后技术不断发展,因此肯定有新的信息为您提供了新的信息。

由于iOS尚未开放用于WiFi Direct的API,并且Multipeer Connectivity仅是iOS,因此我认为解决此问题的最佳方法是使用BLE,这两个平台均支持BLE(某些平台优于其他平台)。

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

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

例如:[http://p2pkit.io]或附近的Google

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

p2pkit answered 2019-10-09T00:21:47Z
2 votes

您可以使用p2pkit或基于它的免费解决方案:[https://github.com/GitGarage。]效果不是很好,它肯定是修复程序,但是它是免费的。 现在可用于少量数据传输。

omikes answered 2019-10-09T00:22:10Z
translate from https://stackoverflow.com:/questions/18884705/transfer-data-between-ios-and-android-via-bluetooth