Adres MAC jest adresem fizycznym i nie zmienia się. W terminologii BLE jest to publiczny adres urządzenia lub BD_ADDR dla BR/EDR. Nie próbowałem go, ale odczytanie go za pomocą readAddress() powinno za każdym razem zwracać tę samą wartość.
To, co robi struktura BLE Androida, to NIE używać tego adresu podczas reklamowania. Pozwala raczej na prywatność, używając adresów, które mogą zmieniać się co kilka minut, ale nadal pozwala urządzeniom powiązanym rozpoznawać je za pomocą IRK wymienianego podczas klejenia.
Z oczywistych względów związanych z prywatnością struktura BLE systemu Android nie pozwala na ustawienie kontrolera do używania adresu publicznego podczas reklamowania. Nie można więc wyłączyć "obracania adresu".
mógłbyś dodać jakieś źródła? – DagW
Bluetooth 4.2 Core Spec: https://www.bluetooth.org/DocMan/handlers/DownloadDoc.ashx?doc_id=286439 –
@BogdanAlexandru, jeśli pakiety reklamowe mają tylko adresy prywatne możliwe do odzyskania, a następnie, jak działa [ScanFilter] (http://developer.android.com/reference/android/bluetooth/le/ScanFilter.html) działa na podstawie adresów MAC? dowolny pomysł? –