如何使用 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)
}
我需要在 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)
}