Может ли приложение на iOS реализовать характеристику строки версии микропрограммы в службе информации об устройствах в BLE - PullRequest
3 голосов
/ 14 октября 2019

Я хочу создать периферийное устройство BLE в качестве приложения для iOS и реализовать характеристику Строка версии встроенного ПО в Информационной службе устройства.

Когда я делаю:

deviceInformationService = CBMutableService(type: CBUUID(string: "0x180A"), primary: false)
deviceInformationService.characteristics = [
    manufacturerNameString,
    modelNumberString,
    firmwareRevisionString
]
peripheral.add(deviceInformationService)

func peripheralManager(_ peripheral: CBPeripheralManager, didAdd service: CBService, error: Error?) обратный вызов вызывается с ошибкой:

Error Domain=CBErrorDomain Code=8 "The specified UUID is not allowed for this operation." UserInfo={NSLocalizedDescription=The specified UUID is not allowed for this operation.}

Когда я подключаюсь к iPhone с Mac с помощью Bluetooth Explorer и читаю информацию об устройстве, он показывает

Manufacturer Name String = Apple Inc.
Model Number String = iPhone10,3

, что НЕ то, что ям настройки в CBMutableCharacteristic. А также отсутствует строка версии встроенного программного обеспечения.

Есть ли способ реализовать строку версии встроенного программного обеспечения?

1 Ответ

0 голосов
/ 14 октября 2019

Служба информации об устройстве принадлежит устройству, а не вашему приложению. Ваше приложение разделяет стек BLE со всеми другими приложениями и ОС, поэтому вы не можете переопределить общесистемные характеристики, подобные этой.

...