Android开发中获取移动设备Mac地址的两种方法:
Runtime.getRuntime().exec("cat /sys/class/net/wlan0/address "); 这种方法没有普遍性。 他是读系统文件信息 但是一些定制系统的目录并不一样。 例如三星的目录为"cat /sys/class/net/eth0/address "
// wifi 关闭之后就只能获取null了 String getMac() { 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; }
用下面的方法获取Mac,需要在AndroidManifest.xml文件中添加权限:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
// wifi关闭之后还可以获取到mac地址 public String getLocalMacAddress() { WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo info = wifi.getConnectionInfo(); return info.getMacAddress(); }