Android 获取MAC地址

/**
 * 获取无线网络Mac地址
 *
 * @return
 */
private static String getWifiMac() {
    return readFile("/sys/class/net/wlan0/address").toUpperCase();
}

/**
 * 获取有线网络Mac地址
 *
 * @return
 */
private static String getLocalMac() {
    return readFile("/sys/class/net/eth0/address").toUpperCase();
}

/**
 * 读取文件内容
 *
 * @param filePath
 * @return
 */
private static String readFile(String filePath) {
    StringBuilder sb = new StringBuilder();
    try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
        String line;
        while ((line = reader.readLine()) != null) {
            if (sb.length() > 0) {
                sb.append("\n");
            }
            sb.append(line);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
    return sb.toString();
}

PS:笔者是在定制安卓设备上面开发,用该方式获取Mac地址没问题。
PS2:手机上因为权限问题很可能获取不了Mac地址,请自行测试。
PS3:不过一般来说,手机上也不用获取有线网络的Mac地址才对。


参考链接:

Android 6.0获取MAC地址

Android获取Root权限和执行Shell脚本

发表评论