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

问题描述:

我必须创建一个应用程序来配对iOS和Android设备(iPhone 5,iPad 3,Galaxy S3,Nexus 7,它们都使用蓝牙4.0),然后将数据发送给对方。可以使用蓝牙连接iOS和Android设备吗?

  • 这个数据量是否有限?我们可以发送像照片或PDF的东西吗?

我已经做了使用CoreBluetooth 2台的iOS设备和Apple的示例代码之间的配对和发送数据BTLE_Transfer

什么,我的理解,外围设备(服务器)都可以向*(客户端)。 此中心正在扫描本身,然后尝试通过查找所宣传的服务的UUID来查找服务器。

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

  • 那么有没有可能让android服务器在iOS上做外挂?
  • 或者也许我的iPhone客户端使用服务器的mac地址连接的可能性?
+0

? 如果您不搜索限制性外设列表,您是否会在iPhone上看到它? 由于TexasInstruments已经通过BLE在空中更新固件的主要阶段,它应该与大文件(我听说你必须实现某种通知)一起工作。 – Larme 2013-04-30 16:26:56

我不确定。蓝牙LE不适合传输大文件。在一个请求电话中,你只有18个字节。

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

尝试免费的应用程序的iPhone - 浅蓝色。

so ...

第一个问题:是的。

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

问:这样的数据量有限吗?我们可以发送像照片或PDF的东西吗?

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

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

作为一个服务器/客户端是从一个外围设备/*一个完全不同的事情: -

外设/*规定了如何建立连接。*设备应该启动连接。外围设备应该公布并等待连接请求。

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

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

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

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

我希望这会有所帮助。

一般来说,发送大文件最好使用互联网连接(通过云)完成,但有许多框架可以减少开销。

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

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

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

声明:我Uepaa开发p2pkit连续工作是否使用的是Android的开源框架的BLE iOS和Android