专栏首页程序猿的那点事不打开Wifi获取Mac地址

不打开Wifi获取Mac地址

今天遇到一个问题,要求不打开Wifi的前提下获取Mac地址,所以针对Android上Mac地址的获取做了总结。 MAC地址:每个接入网络的设备都有一个专门的序号,这个序号就是MAC。手机里的MAC特指WIFi无线网卡的MAC地址。 手机获取MAC地址的方法有以下几种: 1.通过WifiManager获取,代码如下:

String macAddress = null, ip = null;  
WifiManager wifiMgr = (WifiManager)getSystemService(Context.WIFI_SERVICE);  
WifiInfo info = (null == wifiMgr ? null : wifiMgr.getConnectionInfo());  
if (null != info) {  
    macAddress = info.getMacAddress();  
    ip = int2ip(info.getIpAddress());  
}  

2.通过Linux底层的方法获取

public static String getLocalMacAddress() {  
   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;

这俩种方式的区别是第一种可以不需要打开wifi,但是必须在此次开机时已经打开过wifi,并且6.0以后这种方法不管用了。第二种是必须在打开wifi的前提下才可以获取MAC地址。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Android P WiFi扫描流程详解

    2、WifiTracker–>WifiManager WifiTracker 广播监听到WifiManager.WIFI_STATE_CHANGED_ACTI...

    用户7557625
  • wlan macaddress加载

    WCN39x0 supports below 5 ways to configure MAC address: • wlan_mac.bin • NV#46...

    用户7557625
  • CE 认证 5G 干扰信号强度threshold修改

    5G Adaptivity测试fail,添加干扰以后设备未立即响应,依旧有信号传输,干扰强度从-75加强到-67左右设备通过。

    用户7557625
  • 【Python进阶,一学就会】系列1(文末免费送10本书)

    列表推导式(list comprehension)为for循环提供了一个简短且更好的选择。它用于我们需要对列表中的每一个元素执行操作的迭代过程中。

    量化投资与机器学习微信公众号
  • Sql Server 集合防黑办法

    Sql Server 中将由逗号“,”分割的一个字符串,转换为一个表,并应用与 in 条件查询一个集合基本上多数据查询的必备项目.

    谭广健
  • 《javascript数据结构和算法》读书笔记(4):BitMap

    有n个整数,范围是[0,100]。试设计一种数据结构。储存这些数据,并提供两种方法。分别是

    一粒小麦
  • VisualStudio 2019 尝试使用 C# 8.0 新的方式 可空类型Range异步的流

    在安装了几天之后,终于有了 VisualStudio 2019 于是再安装了 dotnet core 3.0 预览版,现在可以来尝试使用 C# 8.0 的新方式

    林德熙
  • [快学Python3]迭代器和生成器

    迭代器 迭代是Python最强大的功能特色,是遍历访问序列元素的一种方式。 迭代器的特性是: 可以记住当前遍历位置 只能往前遍历,不能后退 从序列的第一个元素开...

    苦叶子
  • 20190118-自定义实现replac

    Python replace() 方法把字符串中的 old(旧字符串) 替换成 neange(新字符串),如果指定第三个参数max,则替换不超过 max 次。 ...

    py3study
  • [快学Python3]迭代器和生成器

    迭代器 迭代是Python最强大的功能特色,是遍历访问序列元素的一种方式。 迭代器的特性是: 可以记住当前遍历位置 只能往前遍历,不能后退 从序列的第一个元素开...

    苦叶子

扫码关注云+社区

领取腾讯云代金券