Мне нужно найти MacAddress точки доступа, к которой я подключен. Провел некоторое исследование, наконец, чтобы сделать это, я использовал фрагмент из следующего потока: Wifi getSSID () возвращает ноль
Код выглядит следующим образом:
String mac = "02:00:00:00:00:00";
WifiManager wifiMgr = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
while(mac.equals("02:00:00:00:00:00")) {
WifiInfo wifiInfo = wifiMgr.getConnectionInfo();
mac = wifiInfo.getBSSID();
Log.d("Wifi", "WifiInfo : " + wifiInfo.toString());
}
Log.d("Wifi", "YAY!" + mac);
(Я написал это так, что если по какой-то причине он возвращает ноль, он будет повторять его, пока не вернет что-то другое, потому что согласно некоторым ответам это не всегда соответствует)
к сожалению, вывод th ie всегда: D/Wifi: WifiInfo: SSID: , BSSID: 02:00:00:00:00:00, MAC: 02:00:00:00:00:00, Supplicant state: COMPLETED, RSSI: -74, Link speed: 58Mbps, Tx Link speed: 58Mbps, Rx Link speed: -1Mbps, Frequency: 2412MHz, Net ID: -1, Metered hint: false, GigaAp: false, VenueName: null, WifiMode: 4, HotspotLiveAp: false, score: 55
Манифест имеет необходимые разрешения (в зависимости от пары потоков может что-то упустить):
<uses-permission android:name = "android.permission.ACCESS_WIFI_STATE" android:required="true" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" android:required="true" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:required="true" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" android:required="true" />
<uses-permission android:name="android.permission.INTERNET" android:required="true" />
Чтобы узнать, не является ли проблема внешней, я загрузил WifiAnalyzer на свой телефон, но он правильно показывает ма c точки доступа рядом со мной, а также ту, к которой я подключен при запуске моего приложения, так что проблема не может быть в настройках точки доступа или что-то в этом роде.
Несколько потоков обсуждали похожие, если не идентичные проблемы: Wifi getSSID () возвращает ноль Почему WifiConfiguration.BSSID всегда равен NULL? Как получить BSSID из Все точки доступа Wi-Fi?
Но они либо не получили ответа, либо сосредоточены на другом аспекте проблемы, либо ответ не работает, но все они довольно старые.
TL; DR Я хочу ма c адрес точки доступа, к которой подключен мой телефон, но getBSSID () всегда возвращает ноль.