从DeviceInformation创建BluetoothLEDevice?

时间:2016-05-18 11:09:13

标签: c# bluetooth bluetooth-lowenergy uwp

是否可以从DeviceInformation对象创建BluetoothLEDevice?我已经尝试在BluetoothLEDeviceFromIdAsync中使用DeviceInformation的Id属性但是只会抛出错误

    public static async Task<BluetoothLEDevice> DeviceFromDeviceInfo(DeviceInformation x)
    {
        try {
            string g = x.Id.Substring(x.Id.IndexOf("{") + 1);
            g = g.Remove(g.IndexOf("}"));
            return await BluetoothLEDevice.FromIdAsync(g);
        }
        catch (Exception e){
            throw e;
        }
    }

抛出{“未找到元素。(HRESULT异常:0x80070490)”}

2 个答案:

答案 0 :(得分:1)

我遇到了与心率设备相同的问题。使用常规蓝牙(非LE)设备,您的代码应在连接后运行。然而,对于BTLE,目标是发现设备而无需用户首先配对它。我对这部分没有答案。使用Windows 8.1不可能MSDN Forum Post (2014)MVP Blog Post (2014),但我希望Windows 10 Universal Apps能够实现这一点。

Stackoverflow上有很多未解决的蓝牙LE发现和扫描帖子并不令人鼓舞。希望我们能尽快得到答案!

答案 1 :(得分:0)

只要您尝试访问的设备已配对,您就应该可以访问它。我不确定你为什么要修改Id。要创建设备,您只需要:

DeviceInformation deviceInfo = __;
BluetoothLEDevice device = await BluetoothLEDevice.FromIdAsync(deviceInfo.Id);