今天遇到一个问题,要求不打开Wifi的前提下获取Mac地址,所以针对Android上Mac地址的获取做了总结。 MAC地址:每个接入网络的设备都有一个专门的序号,这个序号就是MAC。手机里的MAC特指WIFi无线网卡的MAC地址。 手机获取MAC地址的方法有以下几种: 1.通过WifiManager获取,代码如下:
代码语言:javascript复制String macAddress = null, ip = null;
WifiManager wifiMgr = (WifiManager)getSystemService(Context.WIFI_SERVICE);
WifiInfo info = (null == wifiMgr ? null : wifiMgr.getConnectionInfo());
if (null != info) {
macAddress = info.getMacAddress();
ip = int2ip(info.getIpAddress());
}
2.通过Linux底层的方法获取
代码语言:javascript复制public static String getLocalMacAddress() {
String macSerial = null;
String str = "";
try {
Process pp = Runtime.getRuntime().exec(
"cat /sys/class/net/wlan0/address ");
InputStreamReader ir = new InputStreamReader(pp.getInputStream());
LineNumberReader input = new LineNumberReader(ir);
for (; null != str;) {
str = input.readLine();
if (str != null) {
macSerial = str.trim();// 去空格
break;
}
}
} catch (IOException ex) {
// 赋予默认值
ex.printStackTrace();
}
return macSerial;
这俩种方式的区别是第一种可以不需要打开wifi,但是必须在此次开机时已经打开过wifi,并且6.0以后这种方法不管用了。第二种是必须在打开wifi的前提下才可以获取MAC地址。