android - 如何从 Android 设备获取 mac 地址?

标签 android mac-address

我有一个可在一部手机上运行的 Android 应用程序。为了在单个设备上工作,我需要获取 MAC 地址或 Android ID。所以我决定获取 MAC 地址,因为应用程序需要连接到指定的 WiFi 网络。那么如何从 Android 设备获取 MAC 地址。

WifiManager manager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo info = manager.getConnectionInfo();
String address = info.getMacAddress();

目前我正在使用它,但它不稳定,但是当应用程序重新启动时它会崩溃。

它返回 02:00:00:00:00:00.和应用程序崩溃

最佳答案

  //getting mac address from mobile
private String getMacAddr() {
    try {
        List<NetworkInterface> all = Collections.list(NetworkInterface.getNetworkInterfaces());
        for (NetworkInterface nif : all) {
            if (!nif.getName().equalsIgnoreCase("wlan0")) continue;

            byte[] macBytes = nif.getHardwareAddress();
            if (macBytes == null) {
                return "";
            }

            StringBuilder res1 = new StringBuilder();
            for (byte b : macBytes) {
                // res1.append(Integer.toHexString(b & 0xFF) + ":");
                res1.append(String.format("%02X:",b));
            }

            if (res1.length() > 0) {
                res1.deleteCharAt(res1.length() - 1);
            }
            return res1.toString();
        }
    } catch (Exception ex) {
        //handle exception
    }
    return "";
}

在 list 中使用这些权限
<uses-permission android:name="android.permission.INTERNET"/>

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

将此方法的返回值获取到 String 变量并使用它。
String MAC = getMacAddr();
希望我有所帮助

关于android - 如何从 Android 设备获取 mac 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59373452/

相关文章:

c - 如何验证 C 中的字符串是否为有效的 MAC 地址?

android - Kotlin 类型不匹配编译错误 : Require Success<T>, Found MyError

android - 在模拟器上运行 react native 项目时出现 Windows 错误 :spawnSync ./gradlew EACCES 错误

c# - 索引(从零开始)必须大于或等于零统一

android - 如何在proguard android中保留外部库

c# - 从默认网关获取mac地址?

java - 如何在 ListFragment 中制作一个可点击的对象,它也覆盖了 onListItemClick

c - 在 C 中找出 Linux 和 FreeBSD 上的 MAC 地址

MAC地址更改后,Android无法连接到wifi

android - 如何从具有 OS 11 的 Android 设备获取 mac 地址?