2

デバイスの MAC アドレスを表示する必要がある Android アプリを設計する必要があります。既に次のコーディングを行っています。

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

しかし問題は、このコードはwifiがオンになっている場合にのみ機能することですが、私の要件は、wifiがオンになっているかどうかに関係なくMACアドレスを見つけることです。

4

2 に答える 2

7

これは、wifi マネージャーを使用せずに Mac アドレスを取得するコードです。

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 が利用できないか、イーサネット配線を使用している可能性があります。利用可能なネットワークごとにこのメソッドを呼び出します。

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" />
于 2013-01-07T06:02:46.933 に答える