gpt4 book ai didi

c# - 单元测试 Microsoft Band

转载 作者:太空宇宙 更新时间:2023-11-03 12:55:44 27 4
gpt4 key购买 nike

尝试在 VS2015 中使用 MSTest 和 Microsoft Band nuGet 包进行单元测试并遇到以下错误

"Microsoft.Band.BandIOException: An error occurred while attempting to acquire the Bluetooth device service.
This error can occur if the paired device is unreachable or has become unpaired from the current host.
System.InvalidOperationException: A method was called at an unexpected time. (Exception from HRESULT: 0x8000000E)".

代码在应用程序内部运行时运行良好。调用 BandClientManager.Instance.ConnectAsync 失败。

最佳答案

异常和错误消息在这里没有帮助,但您必须在 UI 线程上建立蓝牙连接。这是因为该应用可能会提示用户并询问他们是否要允许访问蓝牙设备。

例如,在 UWP 应用中,您可以执行以下操作以确保 UI 线程执行:

await Windows.ApplicationModel.Core.CoreApplication.MainView.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async () =>
{
IBandClient client = await BandClientManager.Instance.ConnectAsync(...);
...
});

或者,如果您有权访问 UI 控件,则可以直接使用其 Dispatcher

任何最终调用 BluetoothLEDevice.FromBluetoothAddressAsync 的代码都必须在 UI 线程上执行。每当应用程序包 list (.appxmanifest)更改时,都会出现蓝牙访问提示。

我无法想象此修复程序对于单元测试是可靠的,因为没有 UI。我不确定除了模拟客户端界面和完全避免使用蓝牙之外还有什么预期的修复方法。

关于c# - 单元测试 Microsoft Band,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33969765/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com