Android中获取设备的mac地址

本文介绍了一种在手机和TV系统中获取设备MAC地址的方法。对于手机系统,可直接获取无线网卡MAC地址;对于TV系统,由于存在有线和无线两块网卡,推荐使用有线网卡MAC地址,需将参数wlan0更改为eth0。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public static String getMac() {
    try {
        List<NetworkInterface> all = Collections.list(NetworkInterface.getNetworkInterfaces());
        for (NetworkInterface nif : all) {
            if (!"wlan0".equalsIgnoreCase(nif.getName())) {
                continue;
            }
            byte[] macBytes = nif.getHardwareAddress();
            if (macBytes == null || macBytes.length == 0) {
                continue;
            }
            StringBuilder result = new StringBuilder();
            for (byte b : macBytes) {
                result.append(String.format("%02X", b));
            }
            return result.toString().toUpperCase();
        }
    } catch (Exception x) {
        x.printStackTrace();
    }
    return "";
}

注:
1.如果是手机系统的话,上述方式可以取到正确的mac地址,亦即无线网卡的mac地址。
2.如果是TV系统的话,上述方式有时则获取不到mac地址。原因是TV系统有两块网卡:有线网卡、无线网卡,因此TV系统同时存在2个mac地址。而无线mac地址,只有开启了无线网络开关时,才能获取到。而有线mac地址则在任何情况下都可以获取到,因此TV系统推荐使用有线网卡的mac地址作为设备的mac地址。而要获取到有线mac地址,则需要将上述算法中的"wlan0"参数改为:"eth0"。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值