Getting the MAC address of the device- when wifi is off

前端 未结 1 1726
余生分开走
余生分开走 2020-12-30 13:02

I am finding the MAC address of the Android Device using the following code:

WifiManager manager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
Wifi         


        
相关标签:
1条回答
  • 2020-12-30 13:22

    Why not enable the Wifi momentarily until you get the MAC address and then disable it once you are done getting the MAC address?

    Of course, doing this is if getting the MAC address is absolutely important.

    UNTESTED CODE

    WifiManager wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
    
    if(wifiManager.isWifiEnabled()) {
        // WIFI ALREADY ENABLED. GRAB THE MAC ADDRESS HERE
        WifiInfo info = wifiManager.getConnectionInfo();
        String address = info.getMacAddress();
    } else {
        // ENABLE THE WIFI FIRST
        wifiManager.setWifiEnabled(true);
    
        // WIFI IS NOW ENABLED. GRAB THE MAC ADDRESS HERE
        WifiInfo info = wifiManager.getConnectionInfo();
        String address = info.getMacAddress();
    }
    

    You will need these permission setup in the Manifest

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
    <uses-permission android:name="android.permission.UPDATE_DEVICE_STATS"></uses-permission>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
    

    I am not entirely sure if the UPDATE_DEVICE_STATS permission is necessary in this case. Please try it out before deciding to keep it.

    0 讨论(0)
提交回复
热议问题