是否可以/允许使用 iOS 作为蓝牙设备和云之间的网关(当应用程序在后台时)

Posted

技术标签:

【中文标题】是否可以/允许使用 iOS 作为蓝牙设备和云之间的网关(当应用程序在后台时)【英文标题】:Is it possible/allowed to use iOS as a gateway between Bluetooth device and cloud (when app in background) 【发布时间】:2019-10-16 07:20:35 【问题描述】:

当应用处于后台时,我想使用 ios 设备作为 BLE 设备和云之间的网关。这是否 (a) 可能并且 (b) 符合 Apple 的指导方针?

Architecture:

BLE device <-> iOS <-> Cloud

场景如下:

    云端向 BLE 设备发送消息 BLE 设备向云端发送响应(结果)

第 1 步的解决方案:

据我了解,“后台通知”[1] 可用于在应用程序处于后台时触发 iOS 设备上的操作。在这种情况下是否允许向 BLE 设备发送消息? 是否有更通用的解决方案,适用于 android 和 iOS?

第 2 步的解决方案:

iOS“核心蓝牙”允许后台处理 [2]。因此,一旦结果可用,iOS 应用程序将再次被触发。在这种情况下,是否允许打开与云(RESTful API、Azure 服务总线、Azure IoT Hub 或类似)的连接来转发结果?

[1]https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app

[2]https://developer.apple.com/library/archive/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/CoreBluetoothBackgroundProcessingForIOSApps/PerformingTasksWhileYourAppIsInTheBackground.html

【问题讨论】:

【参考方案1】:

是的!有可能,我创建了一篇文章,展示了如何使用 BLE 制作 iPhone 网关并连接到另一块板 (ESP32)。

我首先使用 MQTT 连接到 Google Cloud IoT Core,连接 iPhone 后,我使用 Core Bluetooth 扫描电路板。然后它会连接到 ESP32,ESP32 会将数据发送到 iPhone,iPhone 会将这些数据发布到 PubSub。

Controlling Your Phone From The Cloud

【讨论】:

虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。【参考方案2】:

是的,这是可能的。 我同意你的第二个解决方案。

bluetooth-central - 该应用程序使用核心蓝牙框架与蓝牙低功耗外围设备进行通信。 bluetooth-peripheral - 该应用使用 Core Bluetooth 框架共享数据。

【讨论】:

以上是关于是否可以/允许使用 iOS 作为蓝牙设备和云之间的网关(当应用程序在后台时)的主要内容,如果未能解决你的问题,请参考以下文章

我可以使用 RFCOMM 蓝牙协议在 iOS 设备和另一台设备之间共享数据吗?

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

ios蓝牙api可以发现android设备吗?

是否有 AT 命令可以在通过蓝牙连接的两个设备之间引导音频(语音通话)?

使用蓝牙 4.0 在 iOS 设备之间交换数据

通过蓝牙iOS设备之间的连接