gpt4 book ai didi

ios - 如果先连接其他应用程序,CoreBluetooth 不会发现心率监视器

转载 作者:可可西里 更新时间:2023-11-01 00:00:56 25 4
gpt4 key购买 nike

我希望我的用户能够使用我的应用跟踪他们的心率。所以我为此使用了 CBCentralManager。如果没有其他应用程序连接到心率传感器,一切正常。我遇到的问题是如果我开始 f.e.首先是 Strava 或 Endomondo。然后我再也找不到任何设备了。反过来一切都很好,所以我想我在某处缺少一个选项?

我目前在做什么:

我像这样实例化我的 CBCentralManager

centralManager = CBCentralManager(delegate: self, queue: DispatchQueue.main)

这将导致连接的委托(delegate)方法被触发

 func centralManagerDidUpdateState(_ central: CBCentralManager) {

let heartRateServiceUUID = CBUUID(string: "180D")
let services = [heartRateServiceUUID]

switch central.state {

case .poweredOn:
centralManager.scanForPeripherals(withServices: services, options: nil)

从那里开始,没有发现外围设备。

但同样,当我强制退出其他应用程序(如 Endomondo 或 Strava)然后启动我的应用程序时,一切正常。

最佳答案

好的,我刚刚自己找到了主要问题的解决方案。所以任何可能有同样问题的人:

  1. 连接到设备后,请记住它的 UUID
  2. 当你想重新连接到它时,你不需要扫描,只需使用 centralManager.retrievePeripherals(withIdentifiers: [你知道的设备的 id])
  3. 这将为您返回一个 CBPeripherals 列表,您可以像搜索它们后那样简单地连接到它们。

我唯一还不知道的是:即使当我卸载 Endomondo,首先启动我的应用程序时,他们仍然可以发现我的心率监测器......而且我想即使他们记得 UUID 它也会在 UserDefaults 我想,所以他们不能使用 centralManager.retrievePeripherals(...) 重新连接。所以我仍然想知道我需要改变什么才能让它发挥作用......

关于ios - 如果先连接其他应用程序,CoreBluetooth 不会发现心率监视器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42994448/

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