修改BLE设备名称

Posted

技术标签:

【中文标题】修改BLE设备名称【英文标题】:Modify the BLE device name 【发布时间】:2016-11-02 05:41:49 【问题描述】:

我正在开发一个 iPhone 应用程序,这个应用程序通过 BLE 模块向电路板发送命令。电路板控制一些电机移动。

我在 ios 应用上编写代码,另一个人在 Arduino 上编写代码。板上有一个 BLUGiga 112 模块。

现在,在我的 iOS 应用中,我可以搜索可用的 BLE 设备,但检测到的设备名称并不总是我想要的。

gatt.xml 文件中定义的设备名称始终可以在 iOS 应用上检测到。但我希望用户能够通过 iOS 应用程序更改名称,而 xml 中的名称是静态的。所以我让另一位硬件工程师编写一些代码来接受来自 iOS 的新名称并存储在刷新中,然后广播回 iPhone。我可以从 iOS 应用程序传递名称,并且名称已成功存储在设备中。但是下一次,当我打开 iOS 应用程序并尝试四处搜索时,新名称并不总是被检测到。

谁能告诉我为什么?或者我应该怎么做才能完成重命名功能?

【问题讨论】:

【参考方案1】:

iOS 阻止开发人员使用该服务。它还缓存该数据,并且很难清除该缓存。

我最终制作了一个应用可以写入的自定义特征。固件将处理该写入请求,然后更新设备名称和广告数据包。这似乎很老套,但我找不到更好的解决方案。

第 3.12 节(第 24 页)记录了 iOS 不允许开发人员使用该服务(以及其他一些服务)https://developer.apple.com/hardwaredrivers/BluetoothDesignGuidelines.pdf

【讨论】:

以上是关于修改BLE设备名称的主要内容,如果未能解决你的问题,请参考以下文章

BLE在不同设备上的不同外设名称

BLE 4.0 广告本地名称完整是不是有最小设备名称长度?

如何使用 Core Bluetooth 在 iOS 中设置 BLE 外围设备的名称

我可以在 iOS 上模拟 BLE 设备并设置其名称吗? (反应原生)

连接BLE设备后,我怎么知道都有哪些服务可用,我只知道打印uuid但我想知道服务的名称

不同 iDevice 的 BLE(蓝牙)名称不同?