Android 6的MAC获取
2016-08-09 14:02
344 查看
问题:Android 6.0的手机无法通过低版本的Mac地址获取方式获取Mac地址
WifiInfo.getMacAddress() 或者 BluetoothAdapter.getAddress()
原因:由于安全方面的原因,Google在Android 6.0以后的SDK中将上述两个方法的返回值修改为了固定的“02:00:00:00:00:00”
但是可以从NetworkInterface.getNetworkInterfaces()获取(基于调用:cat /sys/class/net/wlan0/address)
解决方案:
感恩!
WifiInfo.getMacAddress() 或者 BluetoothAdapter.getAddress()
原因:由于安全方面的原因,Google在Android 6.0以后的SDK中将上述两个方法的返回值修改为了固定的“02:00:00:00:00:00”
但是可以从NetworkInterface.getNetworkInterfaces()获取(基于调用:cat /sys/class/net/wlan0/address)
解决方案:
public static String getMac() { try { Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces(); while (interfaces.hasMoreElements()) { NetworkInterface iF = interfaces.nextElement(); byte[] addr = iF.getHardwareAddress(); if (addr == null || addr.length == 0) { continue; } StringBuilder buf = new StringBuilder(); for (byte b : addr) { buf.append(String.format("%02X:", b)); } if (buf.length() > 0) { buf.deleteCharAt(buf.length() - 1); } String mac = buf.toString(); Log.d("mac", "interfaceName=" + iF.getName() + ", mac=" + mac); if (iF.getName().equals("wlan0")) { return mac; } else { return Build.UNKNOWN; } } } catch (SocketException e) { return Build.UNKNOWN; } return Build.UNKNOWN; }
感恩!
相关文章推荐
- jni获取mac地址的问题  -  棒槌网@Android开发论坛 - Powered by phpwind
- Android获取本机IP地址(不是localhost)和MAC的方法
- Android 获得imei 和 mac ,平板有时无法获取imei
- android 获取设备IP和Mac地址
- android获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)
- Android 获取本机Mac 地址
- android下获取无线wif信号、ssid、MAC等操作类
- 【小功能2】android获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)
- Android获取本机IP地址(不是localhost)和MAC的方法
- Android下获取以太网mac地址方法 非wifi
- android:获取本机Mac地址及IP地址方法
- Android获取本机IP地址(不是localhost)和MAC的方法
- android 设备唯一码的获取,Cpu号,Mac地址
- Android获取机器ID,Mac,IP等的方法
- Android: 用jni 获取MAC地址
- Android 获取无线蓝牙MAC信息代码
- Android获取本机IP地址(不是localhost)和MAC的方法
- Android获取WIFI状态下的IP地址以及MAC地址
- Android获取本机Mac地址及IP地址方法
- android下获取无线wif信号、ssid、MAC等操作类