是否可以使用蓝牙连接iOS和Android设备?

时间:2013-04-30 14:36:12

标签: android ios bluetooth core-bluetooth bluetooth-lowenergy

我必须制作一个应用程序来配对iOS和Android设备(iPhone 5,iPad 3,Galaxy S3,Nexus 7,它们都使用蓝牙4.0),然后相互发送数据。

  • 这些数据量是否有限?我们可以发送照片或PDF等内容吗?

我已经完成配对并使用CoreBluetooth和Apple BTLE_Transfer

的示例代码在2个iOS设备之间发送数据

据我所知,外围设备(服务器)可以向中心(客户端)发布广告。 这个中心是自己扫描,然后通过查找所宣传服务的UUID来尝试查找服务器。

当我在Android上制作服务器时,它正在等待连接(监听),我知道我的服务器的UUID和mac地址。 但是当我用我的iPhone扫描(当然扫描相同的UUID)时,我找不到服务器。

  • 那么Android服务器是否有可能像iOS上的Peripheral一样做广告?
  • 或者我的iPhone客户端可能使用服务器的mac地址进行连接?

3 个答案:

答案 0 :(得分:10)

问:这些数据量是否有限?我们可以发送照片或PDF等内容吗?

Bluetooth Low Energy未针对发送大量数据进行优化,也未针对流进行优化。它更适合于定期发送小块数据(例如温度读数,时间等)。请查看this answer以了解BLE传输与传统蓝牙的不同之处。话虽这么说,你仍然可以通过BLE发送大量数据,并且数据量是无限的。但是,这可能最终变得不可靠且相对缓慢。

问:那么Android服务器是否有可能像iOS上的Peripheral一样做广告?

作为服务器/客户端与外围设备/中心完全不同: -

外设/中央 指示如何建立连接。中央设备应该启动连接。外围设备应该通告并等待连接请求。

客户端/服务器 指示数据的分发方式。 Gatt服务器保存数据。 Gatt客户端可以读取,写入或通知(获得连续的读数流)此数据。在大多数情况下,服务器也是外围设备,但这不是强制性的。

所以回答你的问题,是的,服务器可以像iOS上的外设一样做广告。但是,对于Android,此功能尚不可用,并且将成为下一版本(Android L)版本的一部分。有关详细信息,请参阅此answer

问:或者我的iPhone客户端是否有可能使用服务器的mac地址进行连接?

据我所知,在coreBluetooth中,您需要连接外围设备的UUID而不是MAC地址。您无需知道从外围设备公布的服务。您最好的选择是扫描外围设备,然后连接到具有UUID和/或您知道属于您的外围设备的广告数据的设备。

我希望这会有所帮助。

答案 1 :(得分:0)

我不确定。蓝牙LE不是传输大文件的好主意。在一个请求电话中,您只有18个字节。

Nexus 7蓝牙芯片存在一些缺陷 - 无法正常工作。

尝试免费申请iPhone - Light Blue。

所以...

第一个问题:是的。

第二:是的,但这不是个好主意。 Iphone中的MAc地址每10分钟交替一次,并且全部打开/关闭蓝牙。

答案 2 :(得分:0)

一般情况下,最好使用互联网连接(通过云端)发送大文件,有许多框架可以减少您的开销。

但是,主要问题仍然是如何发现您想要将数据发送到哪个设备。

有多种方法可以自己完成,例如使用BLE甚至是声音。

说实话,它的工作很多,所以如果您的应用是最终用户驱动的,我建议使用一个可以为您进行跨平台发现的框架,例如:http://p2pkit.io或google附近。

免责声明:我为Uepaa开发适用于iOS和Android的p2pkit