Мне нужно создать приложение, которое сканирует устройства BLE и возвращает его данные. Устройства не будут отображаться при сканировании, если я не использую фильтр.
UUID не является опцией, и устройство не передает свое имя (при сканировании с nrfConnect
. * 1004 оно не отображается. *
Я пытаюсь сканировать его по адресу MA C. НО я не знаю адресов MA C, так как это может быть любое устройство такого рода, поэтому приложение ранее не будет знать MA C Адрес устройства.
Я уже знаю, что у устройства есть префикс для его адреса, который равен F8:36:9B
. Дело в суффиксе. Как я могу (и если это возможно) сделать регулярное выражение для передачи в качестве параметра для поиска всех возможных совпадений устройства MA C Address?
Регулярное выражение само по себе, ([A-Fa-f0-9]{2}:){2}[A-Fa-f0-9]{2}
, которое я получил от Android Bluetooth ScanFilter Partial String Matching .
Я просто не знаю, как реализовать это на scanFilter.
ScanFilter filterMac = new ScanFilter.Builder().setDeviceAddress(/**THE_SUFIX_AND_REGEX*/).build();
Возможно ли это? Если да, то как?
Все, что я пытался, я получаю эту ошибку:
Ошибка: неверный адрес устройства
* 102 6 * Я попытался сгенерировать все возможные совпадения с использованием циклов
for
и сохранить его в
ArrayList
, а затем добавить его в список фильтров, но я получаю
OutOfMemoryException
, поскольку в результате получается более 16 миллионов возможностей.