1、声明权限

  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE">  <uses-permission android:name="android.permission.INTERNET" />

2、调用代码
1) android 6.0以下可以通过获取wifi服务来获取Mac地址

/** * 获取wifi的mac地址,适配到android Q * @param paramContext * @return */public static String getMac(Context paramContext) {try {if (Build.VERSION.SDK_INT >= 23) {String str = getMacMoreThanM(paramContext);if (!TextUtils.isEmpty(str))return str;}// 6.0以下手机直接获取wifi的mac地址即可WifiManager wifiManager = (WifiManager)paramContext.getSystemService("wifi");WifiInfo wifiInfo = wifiManager.getConnectionInfo();if (wifiInfo != null)return wifiInfo.getMacAddress();} catch (Throwable throwable) {}return null;}

2)android 6.0+需要遍历网络接口来获取硬件地址,即mac地址

/** * android 6.0+获取wifi的mac地址 * @param paramContext * @return */private static String getMacMoreThanM(Context paramContext) {try {//获取本机器所有的网络接口Enumeration enumeration = NetworkInterface.getNetworkInterfaces();while (enumeration.hasMoreElements()) {NetworkInterface networkInterface = (NetworkInterface)enumeration.nextElement();//获取硬件地址,一般是MACbyte[] arrayOfByte = networkInterface.getHardwareAddress();if (arrayOfByte == null || arrayOfByte.length == 0) {continue;}StringBuilder stringBuilder = new StringBuilder();for (byte b : arrayOfByte) {//格式化为:两位十六进制加冒号的格式,若是不足两位,补0stringBuilder.append(String.format("%02X:", new Object[] { Byte.valueOf(b) }));}if (stringBuilder.length() > 0) {//删除后面多余的冒号stringBuilder.deleteCharAt(stringBuilder.length() - 1);}String str = stringBuilder.toString();// wlan0:无线网卡 eth0:以太网卡if (networkInterface.getName().equals("wlan0")) {return str;}}} catch (SocketException socketException) {return null;}return null;}

更多相关文章

  1. Android(安卓)获取屏幕高宽度,密度,通知栏高度,截图等常用方法
  2. Android(安卓)关于获取摄像头帧数据
  3. Android开发:Android快速开发不可或缺的11个工具类 (二)
  4. 获取应用签名
  5. Android(安卓)手机上获取物理唯一标识码
  6. Android查看网页源码与开启子线程
  7. Android-->获取所有联系人以及所有的字段(联系人头像,邮箱,地址,
  8. Android常用Manager
  9. 代码:android崩溃日志收集和处理

随机推荐

  1. Apollo 源码解析 —— Portal 认证与授权
  2. Apollo 源码解析 —— Admin Service 发
  3. Apollo 源码解析 —— Client 轮询配置
  4. 艿艿连肝了几个周末,写了一篇贼长的 Sprin
  5. 艿艿周末又肝了一篇万字 Dubbo 文章,Sprin
  6. PMP备考经历-心理篇
  7. 又肝了下微服务 API 网关“金刚”,也是蛮
  8. 又一国产微服务网关 Soul,一起来肝一肝,Dub
  9. 硬核艿艿,新鲜出炉,直接带你弄懂 Spring Bo
  10. 44000 字 + 代码,艿艿肝的 Spring Securit