3

Is it possible to get WiFi MAC Address without actually connected to it?

Let's say I have android device "A". I already turn on the WiFi, so that my android device is now able to detect nearby WiFi SSID broadcasted.

Nearby I have a few WiFi SSIDs broadcasted as listed below:

SSID=hype, MAC_ADDRESS=00:39:E0:33:00 SSID=dummy, MAC_ADDRESS=02:33:DF:39:89 SSID=bilbo, MAC_ADDRESS=D0:32:E8:97:29

Without actually connected to WiFi SSID bilbo, can I have its MAC_ADDRESS?

Please help, thanks.

jfly
  • 7,715
  • 3
  • 35
  • 65
Adrian
  • 524
  • 7
  • 18

2 Answers2

4
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
registerReceiver(new BroadcastReceiver() {
        @Override
        public void onReceive(Context c, Intent intent) 
        {
           List<ScanResult> results = wifiManager.getScanResults();
           for (ScanResult ap : results) {
               Log.d(TAG, "SSID=" + ap.SSID + " MAC=" + ap.BSSID); 
           }
        }
}, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); 
wifiManager.startScan();

For a BSS operating in infrastructure mode, the BSSID is the MAC address of the wireless access point (WAP)

msh
  • 2,700
  • 1
  • 17
  • 23
  • 1
    amazing! thanks @msh! but you need to add these lines first to Android Manifest file: ` ` – Adrian Aug 31 '13 at 15:36
3

Try this bash shell to get the MAC address

cat /sys/class/net/wlan0/address

It returns the MAC address under adb shell.

何金良
  • 61
  • 1