ScanForPeripherals сообщает о десятках случайных периферийных устройств (одно физическое устройство) - PullRequest
0 голосов
/ 23 марта 2020

Что работает: (до соединения scanForPeripherals сообщает о 1x периферийных устройствах)

Что не происходит: (после соединения ScanForPeripherals сообщает о 10-30x периферийных устройствах мгновенно) это происходит мгновенно - в момент подтверждения диалогового окна «пара» -> обнаружена куча периферийных устройств.


  1. Почему iOS / OSX сообщает о большом количестве периферийных устройств, когда это фактически одно физическое устройство?
  2. Так как это не происходит с предыдущими Android версиями, проблема может быть в Android рандомизированном ма c ... какие-либо мнения?
  3. Не проблема повторно подключиться к этим устройствам - НО, когда мне нужно обнаружить новое устройство - я не могу отличить guish его от других 30x, уже сообщенных «сканированием». Есть ли способ решить эту проблему (надежно подключиться к новому устройству)?

  • iOS / OSX Environment: iOS 12 / OSX 10.15).

  • Android Среда: (> SDK 26 => Android 8/9: тестирование на Samsung A20s)

ПРИМЕЧАНИЕ: с Android телефоны с SDK <= 26 все работает безупречно (обнаружено только 1x устройств) </p>


Настройка:

  • iOS / OSX (CBCentralManager) сканирует для конкретных UUID службы

  • Android (периферийные) предоставляет GATT с «необходимыми характеристиками шифрования»


Пример вывода: (didDiscover callback - в списке показаны первые 4 байта каждого периферического.идентификатора для удобства чтения)

2020-03-23 08:40:12.945 start scan B448A5C9-C9D3-E175-3B18-9186C14555FF
( CBCentralManagerScanOptionAllowDuplicatesKey: false )

08:40:13.626 discovered device: AE2E
08:40:13.626 discovered device: 28C1
08:40:13.627 discovered device: 6D36
08:40:13.629 discovered device: 2C14 [ ->> already bonded ]
08:40:13.627 discovered device: 3DF2

... (список продолжается - до 30x периферийных устройств в течение 25 мс) ...

...