我正在开发 Xamarin Forms 应用程序。
我想保存 mac 地址,我可以获取 mac 地址,但当我从设备设置中检查它时,它会有所不同。
public static string getMacAddress()
{
string macAddress = string.Empty;
var all = Collections.List(Java.Net.NetworkInterface.NetworkInterfaces);
foreach (var interfaces in all)
{
if (!(interfaces as Java.Net.NetworkInterface).Name.Contains("wlan0"))
continue;
var macBytes = (interfaces as Java.Net.NetworkInterface).GetHardwareAddress();
if (macBytes == null)
continue;
var sb = new System.Text.StringBuilder();
foreach (var b in macBytes)
{
string convertedByte = string.Empty;
convertedByte = (b & 0xFF).ToString("X2") + ":";
if (convertedByte.Length == 1)
{
convertedByte.Insert(0, "0");
}
sb.Append(convertedByte);
}
macAddress = sb.ToString().Remove(sb.Length - 1);
Console.WriteLine($"Mac Address : {macAddress} ");
return macAddress;
}
return "02:00:00:00:00:00";
}
此代码返回类似
A1:B2:C3:D4:E5:F6
的 mac 地址,但我设备的 mac 地址确实是 G1:H2:I3:J4:K5:L6
。
这是为什么呢?我怎样才能匹配这些mac地址和设备。我将与我们的客户一起使用该应用程序,我们需要知道这一点。
我的手机是 poco f3,运行 Android 12。可能我们客户的设备的 Android 版本较低。