当前位置: 首页 > 知识库问答 >
问题:

BLE设备应该在没有扫描的情况下连接

牧飞鹏
2023-03-14

BLE(低功耗蓝牙)设备应该在不扫描到我的iPhone(应用程序)的情况下连接。

我有通过扫描QRCode得到的BLE地址。

因此,我希望在不调用(manager.scanForPeripherals(withServices:nil))的情况下连接特定的设备(我传递地址的设备),因为它将启动所有设备。

目前,当我找到我的特定设备时,我可以扫描我的BLE设备的二维码并扫描所有可用设备。我正在停止扫描并通过使用广告数据连接到它

func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber)

由于我已经有了BLE设备的地址,是否有无需扫描即可直接连接的方法

提前感谢。任何参考都将有所帮助。

共有3个答案

东方琪
2023-03-14

我不知道Iphone,但在windows上是。只需连接已知地址。它有一些缺点:设备可能够不着或已经连接,因此您必须捕捉这些情况。

蒋栋
2023-03-14

如果您希望重新连接到以前发现的设备,您可以存储设备UUID然后使用:

let retrievedPeripheral = centralManager.retrievePeripherals(withIdentifiers: [deviceUUID])

将检索与提供的UUID匹配的CBPeripheral对象。您可以使用以下方式执行连接:

centralManager.connect(retrievedPeripheral[0], options: nil)

这确实意味着设备必须在范围内和广告中,除非你扫描,否则真的没有办法检查。希望这能有所帮助。

尉迟栋
2023-03-14

您无法在不执行扫描的情况下连接到外围设备。在扫描外围设备时,外围设备管理器会为每个外围设备创建一个唯一的id,然后用于连接。对于不同iPhone上的相同外围设备,这个唯一的id会有所不同。所以你的想法行不通,你必须执行连接扫描。

 类似资料:
  • 我有3台Android设备,三星Galaxy S3手机,三星Tab4和Verizon OEM平板电脑。Verizon OEM平板电脑不支持BLE、API 17。我从android开发者网站安装了“BLE设备扫描”,并在Galaxy S3上运行。它只显示Verizon平板电脑是找到的设备。当我在三星Tab4上运行相同的应用程序时,它只显示Galaxy S3作为找到的设备。如果我只看Galaxy S3

  • 我正在创建一个Android应用程序,该应用程序使用Android Studio扫描所有附近的BLE(蓝牙低功耗)设备。 我想我已经实施了所有这些文件: https://developer.android.com/guide/topics/connectivity/bluetooth/ble-overview https://developer.android.com/guide/topics/c

  • 我试图扫描BLE设备与 (我知道它在新版本中已经过时了,但我只是想看看它是否能与我的手机配合使用[4.4],我正在使用它)。因此,它开始扫描,然后继续,没有给出错误,但没有检测到设备。也会触发OnLEScan事件,但其中的设备参数为null。我的LE设备就在那里并已连接。 在Google上,我发现如果BluetoothAdapter没有UUID,就会发生这种情况。如何设置UUID?何时调用/启动O

  • 作为第三方,是否有一种可行的方法来正确解释蓝牙低能耗设备的数据,该设备没有发布GATT配置文件规范? BLE设备是一种体重秤,可以测量体重、BMI、体脂和水分水平。我的理解是,目前还没有像血压计或心率监测仪那样,采用GATT标准的体重秤(https://developer.bluetooth.org/gatt/profiles/Pages/ProfilesHome.aspx). 使用以下工具: i

  • 经过多次尝试,我来到这里,根据文档: Firestore为离线功能提供现成的支持。在读取和写入数据时,Firestore使用一个本地数据库,该数据库会自动与服务器同步。当用户脱机时,云Firestore功能将继续,当他们重新连接时,将自动处理数据迁移。 所以,我在中编写了一些代码 工作很好。 但是当我关闭我的互联网连接,并从最近的应用程序中删除应用程序,然后返回我的应用程序时,它在离线状态下不起作

  • 我试图用BLE API扫描附近的蓝牙设备,但它似乎不起作用 我已经在清单中添加了权限 以下内容在创建对象时 创建扫描仪回调对象并进一步扫描 在logcat中,我只看到以下内容 这是我的app build gradle } 有人能指出我在这里遗漏了什么吗?