Периферийный идентификатор Android никогда не совпадает

У меня есть две периферийные устройства BLE (iOS и Android) и Macbook, который является центральным.

Мне уже удалось подключиться, написать, прочитать и уведомить, но у меня проблема с периферийным UUID Android.

На центральном didDiscoverPeripheral Метод (центральный) UUID моего устройства Android никогда не остается прежним после перезагрузки приложения.

Мне нужно идентифицировать устройства, но я не могу, если UUID всегда меняется..

Есть ли у вас какие-либо идеи?

1 ответ

Решение

Периферийный режим Android будет менять свой MAC-адрес каждый раз, когда вы вызываете BluetoothLeAdvertiser.startAdvertising(). Это мера безопасности, и вы не можете ее отключить, вы можете прочитать больше в этом вопросе.

В iOS/Mac OS CoreBluetooth сгенерирует UUID для отсканированного периферийного устройства из рекламных данных, и одним из известных факторов является MAC-адрес периферийного устройства. Поэтому, если периферийное устройство Android меняет свой MAC-адрес, у вас нет возможности остановить изменение UUID на центральном Mac.

Я предлагаю вам добавить некоторые данные в рекламные данные вашего периферийного устройства Android, что поможет вам их идентифицировать.

Другие вопросы по тегам