2013-02-19 3 views
6

Я найти MAC-адрес устройства Android, используя следующий код:Получение MAC-адреса Device-, когда Wi-Fi выключен

WifiManager manager = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
WifiInfo info = manager.getConnectionInfo(); 
String address = info.getMacAddress()); 

Но в этом случае я не могу получить MAC-адрес, когда Wi-Fi отключен. Как я могу получить MAC-адрес устройства Android, даже если WIFI выключен.

Благодаря

+0

Вы не можете получить MAC-адрес, если WiFi отключен, в этом случае вы можете использовать DEVICE ID, который снова уникален для всех устройств. – user2060383

ответ

13

Почему бы не включить Wi-Fi на мгновение, пока вы не получите адрес MAC, а затем отключить его, как только вы закончите получение MAC-адрес?

Конечно, это делается, если получение MAC-адреса абсолютно важно.

UNTESTED КОД

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(); 
} 

Вам нужны эти настройки разрешения в 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> 

Я не совсем уверен, что если UPDATE_DEVICE_STATS разрешение необходимо в данном случае. Пожалуйста, попробуйте, прежде чем принять решение сохранить его.

+2

Я думаю, вы не должны отключать Wi-Fi, если он уже включен. Также выглядит, что UPDATE_DEVICE_STATS не требуется. – smoke4fun

+0

Разрешение UPDATE_DEVICE_STATS предоставляется только системным приложениям – euniceadu

+0

Зачем вам нужно включить WIFI устройства, чтобы получить его MAC-адрес? – MikeL