【问题标题】:How to get MAC address of the WIFI interface in android?如何在android中获取WIFI接口的MAC地址?
【发布时间】:2023-03-05 12:47:02
【问题描述】:

我正在使用以下代码:

WifiManager wifiMgr = (WifiManager) app.getSystemService(Context.WIFI_SERVICE);
return wifiMgr.getConnectionInfo().getMacAddress();

问题是,必须在设备中启用 WIFI 才能读取其地址。 WIFI关了怎么还能读取WIFI的MAC?

【问题讨论】:

    标签: android android-wifi


    【解决方案1】:

    你不能。根据设备的不同,如果 wifi 适配器被禁用,那么它实际上可能会以电子方式关闭,因此您无法从中读取任何信息。

    来自Android Developers Blog

    Mac 地址

    也许可以从 设备的 WiFi 或蓝牙硬件。我们不建议将其用作 唯一标识符。首先,并非所有设备都有 WiFi。 另外, 如果没有打开WiFi,硬件可能不会报告Mac 地址。

    【讨论】:

    • 那么识别设备唯一序列的最佳方法是什么?
    • 查看这篇 Android 开发者博客文章:android-developers.blogspot.com/2011/03/…
    • 废话。即使 Wi-Fi 关闭,也可以读取 MAC 地址。当您在手机设置下查看 MAC 地址时,甚至操作系统也会这样做。
    • @AndroidDev 继续提供更好的答案。请提供参考和示例代码,了解如何在禁用适配器的情况下读取 MAC 地址。你怎么知道设置屏幕不只是显示一个缓存的字符串?
    • 我认为 Android 6.0 及更高版本不允许访问硬件标识符。 developer.android.com/about/versions/marshmallow/…
    【解决方案2】:
    WifiManager wm = (WifiManager) getSystemService(Context.WIFI_SERVICE);
    String mac = wm.getConnectionInfo().getMacAddress();
    

    【讨论】:

    • 这正是 OP 已经尝试过的。阅读问题。并且还阅读了 Android 开发者博客文章,它确认如果适配器被禁用,这在许多设备上根本不起作用。 android-developers.blogspot.com/2011/03/…
    • 这是否在没有 Wifi 但启用移动数据的情况下获取 MAC 地址?
    猜你喜欢
    • 2011-02-05
    • 2011-11-12
    • 1970-01-01
    • 2017-02-15
    • 2015-05-23
    • 2011-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多