Android6.0以上系统获取WiFi Mac地址(适用于4.x及5.x)
2017-06-10 20:04
465 查看
添加权限<uses-permission android:name="android.permission.INTERNET" />
/** * 方法一 * 获取设备Mac地址 * @return */ public static String getMacAddress() { String macAddress = ""; try { Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces(); while (interfaces.hasMoreElements()) { NetworkInterface networkInterface = interfaces.nextElement(); byte[] bytes = networkInterface.getHardwareAddress(); if (bytes == null || bytes.length == 0) { continue; } StringBuffer buffer = new StringBuffer(); for (byte b : bytes) { buffer.append(String.format("%02X:", b)); } if (buffer.length() > 0) { buffer.deleteCharAt(buffer.length() - 1); } macAddress = buffer.toString(); Log.d("mac", "interface name=" + networkInterface.getName() + ", mac address=" + macAddress); } } catch (SocketException e) { e.printStackTrace(); } return macAddress; }
/** * 方法二 * 获取设备Mac地址 * @return */ public static String getMacAddress2() { String macAddress = ""; try { List<NetworkInterface> interfaces = Collections.list(NetworkInterface.getNetworkInterfaces()); for (NetworkInterface networkInterface : interfaces) { Log.e("DoorCard", "Mac Address Name: " + networkInterface.getName()); if (!networkInterface.getName().equalsIgnoreCase("wlan0")) { continue; } byte[] bytes = networkInterface.getHardwareAddress(); if (bytes == null) { return ""; } StringBuffer buf = new StringBuffer(); for (byte b : bytes) { Log.e("DoorCard", "b=" + b); buf.append(String.format("%02X:", b)); } if (buf.length() > 0) { buf.deleteCharAt(buf.length() - 1); } macAddress = buf.toString(); return macAddress; } } catch (SocketException e) { e.printStackTrace(); } return macAddress; }
/** * 方法三 * 获取设备Mac地址 * @return */ public static String getMacAddress3() { String macAddress = ""; String str = ""; try { Process process = Runtime.getRuntime().exec("cat /sys/class/net/wlan0/address"); InputStreamReader reader = new InputStreamReader(process.getInputStream()); LineNumberReader numberReader = new LineNumberReader(reader); for (; null != str;) { str = numberReader.readLine(); if (str != null) { macAddress = str.trim(); break; } } } catch (IOException e) { e.printStackTrace(); } if (macAddress == null || macAddress.equals("")) { try { return loadFileAsString("/sys/class/net/eth0/address").toUpperCase().substring(0,17); } catch (Exception e) { e.printStackTrace(); } } return macAddress; } public static String loadFileAsString(String fileName) throws Exception { FileReader reader = new FileReader(fileName); String text = loadReaderAsString(reader); reader.close(); return text; } public static String loadReaderAsString(Reader reader) throws Exception { StringBuffer buf = new StringBuffer(); char[] buffer = new char[4096]; int readLength = reader.read(buffer); while (readLength >= 0) { buf.append(buffer, 0, readLength); readLength = reader.read(buffer); } return buf.toString(); }
相关文章推荐
- android6.0及以上获取wifi mac地址的方法(亲测可行)
- Android6.0系统获取不到蓝牙和wifi的真实MAC地址
- Android6.0及以上版本Wifi开发,扫描Wifi信息,获取Wifi列表为空
- Android6.0以上系统获取权限
- Android6.0以上系统权限提示获取方法
- android6.0获取wifi mac地址的一种方法
- Android6.0系统获getMacAddress()取Wifi和蓝牙Mac地址返回02:00:00:00:00:00解决办法
- Android6.0以上系统获取内置SD和外置SD卡路径的方法
- Android6.0 Android7.0系统获getMacAddress()取Wifi和蓝牙Mac地址返回02:00:00:00:00:00解决办法
- Android获取Mac地址-兼容6.0及以上系统
- Android获取Mac地址-兼容6.0及以上系统
- Android中获取系统语言(适用于Android7.0以上系统)
- Android获取Mac地址-兼容6.0及以上系统
- Android6.0极其以上系统获取Dangerous系统权限问题及其解决方案
- c#中如何获取本机用户名、MAC地址、IP地址、硬盘ID、CPU序列号、系统名称、物理内存
- Android系统信息获取 之七:获取IP地址和MAC地址
- android获取系统wifi状态等
- android获取系统wifi状态等
- Android系统信息获取 之八:WIFI设备和WIFI信号信息获取
- android4.0以上系统获取IP v4地址