是否可以/允许使用 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 设备和另一台设备之间共享数据吗?