2013-01-07 5 views
2

Мне нужно разработать приложение для Android, которое должно отображать MAC-адрес устройства .. Я уже сделал следующее кодирование ..Как получить MAC-адрес устройства Android (WIFI отключен) через код?

WifiManager wifimanager = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
WifiInfo winfo = wifimanager.getConnectionInfo(); 
String MACAddress = winfo.getMACAdress(); 

Но проблема в том, этот код работает только, когда WiFi включен , но мое требование - найти MAC-адрес, включен ли Wi-Fi или нет.

+0

Я уверен, что Java будет генерировать исключение для попытки конвертировать 'SystemService' в' WifeManager' ... FTFY! :) – ErikE

ответ

7

Это код getMac адрес без использования wifi-менеджера.

public static String getMACAddress(String interfaceName) { 
    try { 
     List<NetworkInterface> interfaces = Collections.list(NetworkInterface.getNetworkInterfaces()); 
     for (NetworkInterface intf : interfaces) { 
      if (interfaceName != null) { 
       if (!intf.getName().equalsIgnoreCase(interfaceName)) continue; 
      } 
      byte[] mac = intf.getHardwareAddress(); 
      if (mac==null) return ""; 
      StringBuilder buf = new StringBuilder(); 
      for (int idx=0; idx<mac.length; idx++) 
       buf.append(String.format("%02X:", mac[idx]));  
      if (buf.length()>0) buf.deleteCharAt(buf.length()-1); 
      return buf.toString(); 
     } 
    } catch (Exception ex) { } 
    return ""; 

} 

Некоторые устройства для Android могут не иметь доступного Wi-Fi или использовать проводку ethernet. и вызовите этот метод в соответствии с доступной сетью.

getMACAddress("wlan0"); //using wifi available 
getMACAddress("eth0"); //using ethernet connection availale 

и не забудьте установить разрешение на демонстрацию.

+0

спасибо Neurenor .. он работает –

+0

@harishchintam приветствую вас –

Смежные вопросы