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

scanFor外围文件与服务上的iOS没有找到设备的服务UUID

从建明
2023-03-14

我正在使用scanFor外围文件服务扫描设备UUID。当我使用一些标准服务UUID值时,它有时会工作。

当我尝试使用自定义服务UUID时,它通常找不到任何设备,但如果我在服务UUID列表中使用nil,它将找到使用其服务UUID时找不到的那些设备。

发生了什么事?这可能是因为这些设备的广告包只能广告其部分服务吗?

共有1个答案

颜黎昕
2023-03-14

外围设备宣传的服务集通常小于它提供的服务。这是因为广告中的空间有限,所以只宣传“主要”服务是有意义的。

摘自Apple Core蓝牙编程指南-

广告数据时可以使用多少空间也有限制。当您的应用程序在前台时,它可以在初始广告数据中使用最多28字节的空间用于两个支持的广告数据键的任意组合。如果这个空间用完了,扫描响应中还有额外的10字节空间只能用于本地名称。任何不适合分配空间的服务UUID都被添加到一个特殊的“溢出”区域;它们只能被显式扫描它们的iOS设备发现。当您的应用程序在后台时,不会公布本地名称,并且所有服务UUID都位于溢出区域。

为了帮助您保持在这些空间限制范围内,请将播发的服务UUID限制为标识主服务的UUID。

例如,心率设备可以提供心率服务、设备信息服务、电池服务等,但它只会宣传心率服务,因为这是其他设备将“感兴趣”的服务,因为它将此设备与其他类别的设备区分开来。

一旦设备被识别并建立连接,如果需要,可以发现其他服务。

 类似资料:
  • 设备服务 网络状态 1.BdHiJs.device.connection.get 单次获取网络状态 BdHiJs.device.connection.get({ onsuccess: function (data) { console.log(data) }, onfail: function (err) {

  • 设备服务 网络状态 1.BdHiJs.device.connection.get 单次获取网络状态 BdHiJs.device.connection.get({ onsuccess: function (data) { console.log(data) }, onfail: function (err) {

  • 我正在尝试通过Multer将文件上载到服务器。这段代码所做的只是创建文件夹,而不是文件。我还尝试使用github上的教程,但在前端我的代码也没有成功 代码AJAX 还有MAIN.JS 我从前端获得的console.log输出:

  • 我已经通过Composer下载并安装了谷歌云存储PHP库,下载了JSON密钥文件,但我无法使用该库做任何事情。当我严格按照指示去做时,我只得到错误。不管怎样,这是我试图做任何事情的文件中的代码,比如列表桶文件,或者上传文件,等等...谁能告诉我我做错了什么?我真的很想在我的服务器上使用谷歌云存储来备份文件。 如果这有助于澄清,我正在使用DreamHost VPS作为我的服务器。它支持PHP7.0。

  • 本文向大家介绍服务器之间文件备份方案、如何把服务器文件自动备份到另外一台服务器?,包括了服务器之间文件备份方案、如何把服务器文件自动备份到另外一台服务器?的使用技巧和注意事项,需要的朋友参考一下 很多单位都有文件服务器备份的需求,并且常常是把一个服务器的文件自动备份到另外一台文件服务器 。如何实现呢? 一、Windows文件服务器自动备份的方法 Windows文件服务器自动备份的最简单方法是安装专

  • 我正在尝试通过BLE将ESP32模块连接到我的iPhone,并使用其中,让carServiceCBUUID=CBUUID(字符串:“c0de0001-feed-f00d-c0ff-eeb3d05ebeef”)。我正在学习Ray Wenderlich的心脏监护仪教程,但由于ESP32蓝牙模块没有公布主要服务UUID,因此当我扫描外围设备时,它找不到该设备。附件是BLE设备上浅蓝色信息的屏幕截图。是否