Метод setManufacturerData() в библиотеке Bluetooth для Android позволяет продолжить работу рекламы с несоответствующими данными производителя

Я вызываю метод ниже из библиотеки Android BLE для настройки фильтра сканирования. Я использую как идентификатор производителя, так и данные производителя в качестве критериев фильтрации. Однако я сталкиваюсь с периодической проблемой, когда объявления с несоответствующими данными производителя все еще обрабатываются.

Например: мои критерии фильтра данных производителя установлены на byteArrayof(0x0A, 0x0A), но если продукт рекламирует другие данные, такие как byteArrayof(0x0A, 0x0B), критерии фильтра, по-видимому, скомпрометированы и пропускают эти данные.

Как мне решить эту проблему? Я считаю, что это проблема библиотеки Android BLE? Кто-нибудь сталкивался с такой же проблемой?

public Builder setManufacturerData(int manufacturerId, byte[] manufacturerData) {
            if (manufacturerData != null && manufacturerId < 0) {
                throw new IllegalArgumentException("invalid manufacture id");
            }
            mManufacturerId = manufacturerId;
            mManufacturerData = manufacturerData;
            mManufacturerDataMask = null; // clear manufacturer data mask
            return this;
        }
```

Людмила
Вопрос задан1 июля 2024 г.

1 Ответ

Ваш ответ

Загрузить файл.