ВНИМАНИЕ: рекламный ключ «Сервисные данные» недопустим - PullRequest
2 голосов
/ 26 мая 2019

Я разрабатываю периферийное приложение BLE.По требованию рекламный пакет должен содержать поле «Сервисные данные».Я сделал это в Android, пакет должен быть таким:

enter image description here

0x16 - поле данных службы, перечисленное здесь https://www.bluetooth.com/specifications/assigned-numbers/generic-access-profile/

То же самое, я делаю это в iOS.Я использую каркас BluetoothCore для реализации периферийного устройства Bluetooth.

Ниже приведен атрибут, который я должен использовать для установки значения в поле «Данные службы»:

advertisementData[CBAdvertisementDataServiceDataKey] = <somedata>

Однако я получил предупреждение:

ПРЕДУПРЕЖДЕНИЕ: рекламный ключ «Сервисные данные» недопустим

Может кто-нибудь сообщить мне, почему и каково решение?

1 Ответ

2 голосов
/ 27 мая 2019

Нельзя указывать служебные данные при рекламе периферийного устройства на iOS. Вы можете указать только UUID сервиса и название сервиса.

Из документации :

advertisementData

Дополнительный словарь, содержащий данные, которые вы хотите рекламировать. Возможные ключи словаря AdvertisingData подробно описаны в CBCentralManagerDelegate. При этом только два ключа поддерживаются для объектов периферийного менеджера: CBAdvertisementDataLocalNameKey и CBAdvertisementDataServiceUUIDsKey.

Решением для вашего предупреждения является удаление CBAdvertisementDataServiceDataKey из словаря рекламных данных.

Боюсь, на iOS нет решения для ваших требований.

...