Как я могу получить MA C адрес в Android 8 с nativescript? - PullRequest
1 голос
/ 30 января 2020

Мне нужно получить адрес MA C в моем проекте nativescript / typcript на платформе Android. Я не нашел ни одного плагина для этого, поэтому я думаю, что единственный способ - использовать нативный API. Можете ли вы предоставить мне код в машинописи, чтобы сделать это? Спасибо

1 Ответ

1 голос
/ 30 января 2020

Попробуйте это (проверено на 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)
  }
...