不打开Wifi获取Mac地址

2020-07-15 11:13:27 浏览数 (1)

今天遇到一个问题,要求不打开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地址。

0 人点赞