ios - CoreBluetooth - 在 iPhone 上实现的外围设备的通用访问(1800)?

标签 ios bluetooth-lowenergy core-bluetooth

我正在 iOS 应用程序中实现外围角色,我能够成功配置正在宣传并可以访问的自定义服务。

现在看来我无法更改通用访问配置文件值,例如设备名称 - 我正在添加为“1800”配置的 CBMutableService,但在扫描列表中我仍然看到“GENERIC PHONE”值。

有什么办法可以改变吗?

最佳答案

您的服务不是它自己的外围设备。它是整个设备(电话)共享外围设备的一部分。因此,您不直接控制 GAP,您只是提供服务。

也就是说,在您控制的同时设置外围设备的广告名称非常简单。您只需在 startAdvertising 字典中使用 CBAdvertisementDataLocalNameKey 传递它:

[self.peripheralManager startAdvertising:@{
    CBAdvertisementDataServiceUUIDsKey : @[[CBUUID UUIDWithString:MY_SERVICE_UUID]],
    CBAdvertisementDataLocalNameKey : @"MyDevice"
}];

请注意,您唯一可以控制的是本地名称和服务 UUID。您无法设置制造商数据、发射功率等内容。

关于ios - CoreBluetooth - 在 iPhone 上实现的外围设备的通用访问(1800)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42208272/

相关文章:

ios - 蓝牙配对请求连接

ios - Swift 键盘避免 View 无法按预期工作

ios - Swift - iOs 8 - 带复选框的 UIAlertView

ios - AnyObject 不可转换为 String

android - 如何在以下代码中定义 SampleGattAttributes?

ios - BLE外设不做广告

ios - LightBlue 找到设备,但未找到 iOS CoreBluetooth

ios - 无法在调度队列 swift 3 的主线程中更新 UI

ios - 如何使用标识符连接外设/BLE 设备?

android - 在 Lollipop 中从远程 BLE 设备读取超过 20 个字节失败