获取android以太网MAC地址(不是wifi接口)

inv*_*sus 14 java android ethernet mac-address

我正在使用Api级别为8的Android,我想获得以太网接口的地址(eth0).

在API级别8上,NetworkInterface类没有getHardwareAddress()函数.WifiManager也不起作用,因为它不是无线接口.

提前致谢!

inv*_*sus 26

这是我基于Joel F答案的解决方案.希望它可以帮到某人!

/*
 * Load file content to String
 */
public static String loadFileAsString(String filePath) throws java.io.IOException{
    StringBuffer fileData = new StringBuffer(1000);
    BufferedReader reader = new BufferedReader(new FileReader(filePath));
    char[] buf = new char[1024];
    int numRead=0;
    while((numRead=reader.read(buf)) != -1){
        String readData = String.valueOf(buf, 0, numRead);
        fileData.append(readData);
    }
    reader.close();
    return fileData.toString();
}

/*
 * Get the STB MacAddress
 */
public String getMacAddress(){
    try {
        return loadFileAsString("/sys/class/net/eth0/address")
            .toUpperCase().substring(0, 17);
    } catch (IOException e) {
        e.printStackTrace();
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)


Joe*_*l F 21

假设您的以太网接口是eth0,请尝试打开并读取该文件/sys/class/net/eth0/address.