繁体   English   中英

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

[英]Is it possible to connect iOS and android device using Bluetooth?

我必须制作一个应用程序来配对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地址进行连接?

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

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

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

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

外围/中央决定了连接的方式。 中央设备应该启动连接。 外围设备应该通告并等待连接请求。

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

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

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

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

我希望这有帮助。

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

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

尝试免费申请iPhone - Light Blue。

所以...

第一个问题:是的。

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

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

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

可以通过多种方式自行完成,例如使用BLE甚至声音。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM