我升级到Windows 10,1703版本(版本15063)(Creators Update)正式版本。当我在WPF桌面应用程序中运行以下代码时,BluetoothLEDevice.FromBluetoothAddressAsync永不返回。FromBluetoothAddressAsync永不返回Windows 10创作者WPF应用程序中的更新
此代码在我的Windows 10更新(即之前的1607版本14393)之前正常工作。如果在新的10场1703
BluetoothLEAdvertisementWatcher BleWatcher = null;
private void Button_Click(object sender, RoutedEventArgs e)
{
BleWatcher = new BluetoothLEAdvertisementWatcher
{
ScanningMode = BluetoothLEScanningMode.Active
};
BleWatcher.Received += Watcher_Received;
BleWatcher.Start();
}
private async void Watcher_Received(BluetoothLEAdvertisementWatcher sender,
BluetoothLEAdvertisementReceivedEventArgs args)
{
var device = await BluetoothLEDevice.FromBluetoothAddressAsync(args.BluetoothAddress);
// never continues beyond this point above with my BTLE devices that previously worked
}
运行作为UWP此代码也能正常工作我跟着指示这里https://stackoverflow.com/a/37335251/3187714设置我的WPF桌面应用程序使用UWP的API。
的问题更是雪上加霜,因为当用户开始升级赢得10 1703,因为我现有的exe不再工作我现有的WPF应用程序将被打破。
是别人的(非UWP)桌面exe文件与Windows 10 1703更新遇到此问题?
经过进一步的实验中,我确实发现,如果我加入了可选的BluetoothAddressType.Public第二个参数来调用FromBluetoothAddressAsync,该函数返回,但设备返回为null。
var device = await BluetoothLEDevice.FromBluetoothAddressAsync(args.BluetoothAddress, BluetoothAddressType.Public);
是的,我有同样的问题。这实际上很烦人,因为我们项目的要求明确排除了UWP的使用,但强制使用BLE。使用微软的API是一个痛苦的屁股... – Frank
权限?多数民众赞成通常与这样的东西问题。有时候它并不明显,这可能是UWP windows蓝牙许可的不同,它将UWP应用与蓝牙进行比较。 –