ziwuxian

        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();
}

 

分类:

技术点:

相关文章:

  • 2021-11-19
  • 2021-11-19
  • 2021-08-03
  • 2022-12-23
  • 2021-12-04
  • 2022-12-23
  • 2021-11-29
猜你喜欢
  • 2022-01-26
  • 2022-12-23
  • 2021-11-08
  • 2021-11-19
  • 2022-02-21
  • 2021-12-27
  • 2021-11-19
相关资源
相似解决方案