다음은 wifi 관리자를 사용하지 않고 getMac 주소에 대한 코드입니다.
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 "";
}
일부 안드로이드 장치는 무선 랜을 사용할 수 없거나 이더넷 배선을 사용 중일 수 있습니다. 을 사용하고 네트워크별로 사용할 수있는이 메서드를 호출하십시오.
getMACAddress("wlan0"); //using wifi available
getMACAddress("eth0"); //using ethernet connection availale
명시 적 권한을 설정하는 것을 잊지 마십시오.
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Java가'SystemService'를'WifeManager'로 변환하려고 시도했을 때 예외를 던질 것이라 확신합니다 ... FTFY! :) – ErikE