gpt4 book ai didi

ios - 在不打开 App(或在后台)的情况下通过 iOS 通过 BLE 同步数据

转载 作者:行者123 更新时间:2023-11-28 18:08:54 25 4
gpt4 key购买 nike

我正在研究一种可以在门关闭时进行计数的设备。我想做的是,当我走进门时,我的 iPhone 会自动同步设备上的数据并将该计数发送到服务器(通过 iPhone),而无需我打开应用程序或将其置于后台。这可能吗?如果可能的话如何?

这是我的想法的图表:

Door closes -> BLE notifies iPhone -> BLE sends count to iPhone -> iPhone sends that value to server

所有这些都无需用户(我)触摸我的设备或打开已安装的 iOS 应用程序。

最佳答案

您的应用程序必须在后台运行才能执行某些操作,但这没关系,因为 Core Bluetooth 后台模式会为您处理。

首先,您需要在您的项目中选择“使用蓝牙配件”背景模式。

现在,您的程序流程将是这样的:

  1. 您的用户运行您的应用,该应用会扫描可用的门并将其显示给用户
  2. 您的用户选择他们想要连接的门
  3. 您将所选外设的标识符保存在某个地方,例如 NSUserDefaults
  4. 你连接到外设
  5. 一旦调用了 didConnectPeripheral 委托(delegate)方法,您就可以读取计数并在获得值后更新服务器
  6. 用户现在可以暂停您的应用并执行其他操作
  7. 最终外围设备将超出范围,您将收到对 didDisconnectPeripheral 的调用。在这种方法中,您立即重新发出与外围设备的连接。
  8. 因为你有 Core Bluetooth 后台模式,当外围设备最终再次出现时,你将在后台再次调用 didConnectPeripheral,你可以按照第 5 步继续(在这种情况下你的应用已经在后台,所以它会在您读取数据后回到暂停状态,而无需用户执行任何操作)。

您在第 5 步中更新服务器。无论应用程序是在前台还是后台,都会执行此步骤。用户不需要打开您的应用程序。

现在,iOS 最终可能会将您的应用程序从挂起状态中移除,例如由于内存压力。为了在看到外围设备时仍然能够连接到外围设备,您需要选择进入状态恢复,如 Core Bluetooth Programming Guide 中所述。

关于ios - 在不打开 App(或在后台)的情况下通过 iOS 通过 BLE 同步数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39043320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com