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

原文 标签 android ios bluetooth core-bluetooth bluetooth-lowenergy

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

  • 这个数据量有限制吗?我们可以发送照片或 PDF 之类的东西吗?

  • 我已经使用 CoreBluetooth 和 Apple 的示例代码在 2 个 iOS 设备之间完成配对和发送数据 BTLE_Transfer

    据我所知,外设(服务器)可以向中央(客户端)做广告。
    该中心正在扫描自身,然后通过查找所通告服务的 UUID 来尝试找到服务器。

    当我在 Android 上创建服务器时,它正在等待连接(监听),我知道服务器的 UUID 和 mac 地址。
    但是当我用我的 iPhone 扫描(当然扫描相同的 UUID)时,我找不到服务器。
  • 那么android服务器有没有可能像iOS上的Peripheral一样做广告呢?
  • 或者我的 iPhone 客户端是否有可能使用服务器的 mac 地址进行连接?
  • 最佳答案

    问:这个数据量有限制吗?我们可以发送照片或 PDF 之类的东西吗?

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

    Q:那么安卓服务器有没有可能像iOS上的Peripheral一样做广告?

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

    外设/中央规定如何建立连接。中央设备应该发起连接。外围设备应通告并等待连接请求。

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

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

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

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

    我希望这有帮助。

    关于android - 是否可以使用蓝牙连接 iOS 和 Android 设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16302525/

    相关文章:

    ios - NSCalendarDayChanged正在发布而没有更改日期

    ios - 过滤后保留负值

    java、安卓和蓝牙

    android - 想要一个完美的圆圈来进行通知计数

    java - 如何以编程方式关闭Android中的对话框?

    android - 没有与Android模拟器兼容的拆分APK

    java - android-如何使用相机从SD卡获取图像

    ios - 使用Swift和Firebase,如何从经过身份验证的应用程序用户向自己发送自动电子邮件?

    android - 如何在Android中通过蓝牙连接移动设备和打印机?

    java - J2SE中的手机监控器