【问题标题】:Get MAC address of device获取设备的 MAC 地址
【发布时间】:2014-11-06 09:29:35
【问题描述】:

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

foreach (DeviceInformation device in devices)
{
    BluetoothLEDevice bleDevice = await BluetoothLEDevice.FromIdAsync(device.Id);
}

一切正常,但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。

【问题讨论】:

    标签: c# windows-phone-8.1 bluetooth-lowenergy


    【解决方案1】:

    您可以通过 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'
    

    【讨论】:

    • 感谢代码!在我等待的时候,我注意到 BluetoothLEDevice 项也有包含(有点隐藏,真的)Mac 地址的属性 DeviceId 谢谢!
    • 也许 ...input.ToString("X12") 更好。但答案是完美的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-22
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多