这段时间项目遇到了一个问题,客户把移动设备发回厂维修后再安装到我们的项目上,运行起来就会报错。后来我仔细排查了一下,发现了一个很奇怪的问题,就是无法获取mac地址。于是我就仔细看了一些关于如何获取mac地址的资料,经过一番调试,终于解决了这个问题。现在决定把这个总结一下,避免以后再遇到这个问题。
MAC地址又叫物理地址,与IP地址不同的是,MAC地址是由网卡决定的,也就是说一个设备只能有一个MAC地址,所以常常被用来作为唯一的识别码。我在网上搜了一下,一共有四种获取MAC地址的方法。
1. 获取方式
它是一个wifi管理器,通过它可以查询网卡状态、无线信号列表、当前网络、连接IP、MAC地址等,这个是目前比较常用的方法,我用手机试了一下,发现在手机刚开机的时候这个方法是没用的,如图:
当我打开wifi的时候(即使没有连接),就能获取到正常的mac地址,如图:
然后我发现这里获取到的其实和手机里高级wlan里显示的是一样的,mac地址或者ip地址如图:
代码如下:
mWifiManager = (WifiManager) context .getSystemService(Context.WIFI_SERVICE); mWifiInfo = mWifiManager.getConnectionInfo();
String mScanResult = mWifiAdmin.getMacAddress();
总结:获得 Mac 必须是