今天对MAC地址的获取做了一些学习,目前网上获取MAC地址的方法主要如下:
- 使用busybox ifconfig
- 使用cat /sys/class/net/wlan0/address
- 使用WifiInfo.getMacAddress
- 使用NetworkInterface.getHardwareAddress

在飞行模式下,基本所有方法都不可用。

BusyBox ifconfig

并不是所有的机器都装了busybox,所以,使用busybox的兼容性比较差。这个可以使用android终端命令netcfg来代替(最后一列就是MAC地址):

cat /sys/class/net/wlan0/address

这种方法是通过读取网卡驱动提供的MAC地址信息,一般比较可靠,但是同busybox ifconfig或netcfg一样,需要手动解析返回的字符串。

WifiInfo.getMacAddress

WifiManager wifiManager=(WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo=wifiManager.getConnectionInfo();
String mac=wifiInfo.getMacAddress();

这种方法比较通用,原来一直用这个,但是最近发现,在Android 6.0系统上,这个方法失效了,返回了”02:00:00:00:00:00”的常量,网上有人说是权限问题,但是已经把所有权限都打开了,还是返回这个值,可能是一个bug,或许在将来这个问题会被修复。

网友提示后,发现这并不是一个BUG,在google的博客中找到如下一段话:

Most notably, Local WiFi and Bluetooth MAC addresses are no longer available. The getMacAddress() method of a WifiInfo object and the BluetoothAdapter.getDefaultAdapter().getAddress() method will both return 02:00:00:00:00:00 from now on.

NetworkInterface.getHardwareAddress

这个是我目前使用的方法,其原理和cat /sys/class/net/wlan0/address是一模一样的,但是这个是上层API,不需要自己处理底层数据。在Android 6.0上测试通过。

networkInterface = NetworkInterface.getByName("wlan0");
return ConvertMacAddressBytesToString(networkInterface.getHardwareAddress());

获取WiFi MAC地址总结相关推荐

  1. 如何正确获取 wifi mac地址

    获取wifi mac地址 今日研读讯飞 AIUI SDK 对其工具类的实现 进行一下简单记录 正式版本中使用的功能 值得我们借鉴 getWifiMac 为每一个设备设置对应唯一的SN(最好使用设备硬件 ...

  2. java如何获得wlan mac_Android M 如何获取 Wifi MAC地址

    今天在撸代码时发现,之前能获取mac地址的方法在nexus 6上返回了"02:00:00:00:00:00",进入设置查看mac地址,结果不相同,肯定有问题,于是就开始上网查资料一 ...

  3. android获取wifi mac地址吗,Android 获取WIFI MAC地址的方法

    1. 经常用法,调用Android的API:WifiManager WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SER ...

  4. android获取wifi mac地址吗,Android获取当前WiFi的MAC地址-适配所有版本

    ** Android获取当前WiFi的MAC地址 ** package com.dogness.platform.utils; import android.content.Context; impo ...

  5. Android~获取WiFi MAC地址和IP方法汇总

    最近由于项目需求,需要获取手机WiFi的MAC地址和IP,于是乎网上搜罗了一波.各种版本的都有,各种方法都有,而且安卓6.0以下.6.0~7.0.7.0以上版本差异都很大!在这里我就集中给归一下类,方 ...

  6. Android 8.1 获取wifi mac地址方法

    安卓8.1更新了获取WIFI地址的方法,使用之前的方法获取不到地址 private String getWifiMacAddress() {String str = "";Stri ...

  7. android 获取网卡mac_在安卓6.0(及以上)设备上无法获取无线网卡MAC地址的解决方案...

    在安卓6.0以下的设备上,通过WifiManager.getConnectionInfo().getMacAddress()即可获取WLAN物理地址, 而在6.0及以上,以此方式获取到的MAC地址为固 ...

  8. Android11 Wifi Mac地址设置随机或者固定分析

    Android11 Wifi Mac地址设置随机或者固定分析 本文对Android11 wifi MAC地址设置是否随机问题进行分析. 文章目录 Android11 Wifi Mac地址设置随机或者固 ...

  9. android+手机mac地址,Android 获取手机Mac地址,手机名称

    /** * 获取手机mac地址 * 错误返回12个0 */ public static String getMacAddress(Context context) { // 获取mac地址: Stri ...

最新文章

  1. 冰球项目开发日志(一)
  2. Register-SPWorkflowService 远程服务器返回错误: (404) 未找到
  3. 浅谈Nginx负载均衡与F5(硬件)的区别
  4. VerbalExpressions
  5. android 自定义窗口,Android studio如何自定义设置窗口布局?
  6. 学点PYTHON基础的东东--数据结构,算法,设计模式---观察者模式
  7. jmeter录制脚本(Mac)
  8. KEIL MDK中的RO、RW和ZI DATA理解及KEIL中ROM和RAM使用大小计算
  9. 阿里云网站备案时变更备案的问题解决总结 满满干货
  10. suse linux 添加网卡驱动,图文并茂介绍suse linux 11系统安装全过程以及suse系统下安装网卡驱动和刷新固件.doc...
  11. 优质数据平台如何打造?从网易云音乐看内容生态的运营法则
  12. 该网页无法正常运作解决方法
  13. ios 内存深度优化_iPhone6用1GB内存 优化太好还是另有玄机
  14. 阿里宣布组织大变动:集团迎来首位 80 后 CTO、张勇亲自挂帅阿里云!
  15. 【疑难杂症】allennlp安装报错:Installing build dependencies ... error
  16. 连用形,连体型 详解
  17. 电商、流量平台分析指标
  18. Latex 篇章结构 特殊字符
  19. 有道云免会员更换背景图
  20. PaloAlto主备实现高可用性的先决条件

热门文章

  1. 网站关键词优化应该先优化首页还是优化内页?
  2. jpa级联添加_请教一个JPA多对多级联保存的问题
  3. JAVA/C语言在线刷题-应声虫
  4. keil4怎么移植其他人的程序_遗传性脱发怎么自救,头发稀少掉发的原因?怎么办?...
  5. flutter入门之理解Isolate及compute ——解决耗时操作卡住UI的问题
  6. 三星总裁强硬回应华为,未来十年三星依然领先!
  7. 2022年度电商“三巨头”阿里,京东,拼多多的“暗战”
  8. Android7.0持久化技术
  9. LINUX培训课程!
  10. k8s之ingress