获取设备的MAC地址

Rav*_*art 3 c# bluetooth-lowenergy windows-phone-8.1

我正在编写一个 Windows Phone 8.1 应用程序,用于发现附近的低功耗蓝牙设备。

foreach (DeviceInformation device in devices)
{
    BluetoothLEDevice bleDevice = await BluetoothLEDevice.FromIdAsync(device.Id);
}
Run Code Online (Sandbox Code Playgroud)

一切正常,但该bleDevice.BluetoothAddress属性包含一个ulong类型,而我需要一个字符串类型,格式类似于 Mac 地址。

例子:

bleDevice.BluetoothAddress: 254682828386071 (ulong)

所需的 Mac 地址: D1:B4:EC:14:29:A8(字符串)(这是我需要它的示例,而不是设备的实际 Mac 地址)

有没有办法将 long 转换为 Mac 地址?或者有没有另一种方法可以直接发现Mac地址而无需转换?我知道有一个名为的工具In The HAnd - 32feet可以帮助我,但目前不支持 Windows Phone 8.1。

Abb*_*bas 5

您可以通过 Google 和 StackOverflow 上的此处找到许多主题。无论如何,这是一种方法:

ulong input = 254682828386071;
var tempMac = input.ToString("X");
//tempMac is now 'E7A1F7842F17'

var regex = "(.{2})(.{2})(.{2})(.{2})(.{2})(.{2})";
var replace = "$1:$2:$3:$4:$5:$6";
var macAddress = Regex.Replace(tempMac, regex, replace);
//macAddress is now 'E7:A1:F7:84:2F:17'
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的代码!在等待的过程中,我注意到 BluetoothLEDevice 项也具有属性 DeviceId,其中包含(实际上有点隐藏)Mac 地址 谢谢! (2认同)