如何使用 nativescript 在 Android 8 中获取 MAC 地址?

How can I get MAC address in Android 8 with nativescript?

我需要在 Android 平台上的 nativescript/typescript 项目中获取 MAC 地址。我还没有找到任何插件来执行此操作,所以我认为唯一的方法是使用本机 API。你能给我提供打字稿中的代码来做到这一点吗?谢谢

试试这个(在 Android 10 上测试过)

try {
    const collection = java.util.Collections.list(java.net.NetworkInterface.getNetworkInterfaces());
    const iterator = collection.iterator();

    while (iterator.hasNext()) {
      const nif = iterator.next(),
        name = nif.getName();

      if (name !== "wlan0") {
        continue;
      }

      const macBytes = nif.getHardwareAddress();
      if (macBytes !== null) {

        const res = new java.lang.StringBuilder();
        for (let i = 0; i < macBytes.length; i++) {
          const b = macBytes[i];
          const hex = java.lang.Integer.toHexString(b & 0xFF);
          if (hex.length == 1) { hex = "0" + hex; }
          res.append(hex + ":");
        }

        if (res.length > 0) {
          res.deleteCharAt(res.length - 1);
        }

        console.log("Mac address: " + res);
      }
    }
  } catch (err) {
    console.log(err)
  }