Csharp/C#教程:什么时候可以调用`BarcodeScanner.GetDefaultAsync()`?分享


什么时候可以调用`BarcodeScanner.GetDefaultAsync()`?

我正在尝试使用新的Windows 8.1 Point of Service API进行条形码扫描,如果我从以下任何位置调用GetDefaultAsync() ,它将返回null

这似乎不是DeviceCapabilities或驱动程序的问题,因为如果我从以下地方调用它,它将完美地工作:

这让我怀疑你必须专注于访问POS设备,以及构造函数等。 在收到焦点之前被调用。

问题:是否有关于何时可以调用GetDefaultAsync()

松散地关注Microsoft Sample BarcodeScanner我在OnNavigatedTo连接条形码扫描器没有任何困难,尽管BarcodeScanner.GetDefaultAsync()调用有点嵌套。

我声称OnNavigatedTo的扫描仪,因为这个特定页面的点是扫描条形码,如果由于某种原因没有找到/声称扫描仪我想要预先出错,我不希望页面看起来和感觉function,如果不是和我不想强迫用户在发现条形码扫描器不工作之前尝试扫描。

我不能告诉你为什么在没有看到更多你的代码的情况下,在你的特定情况下在不同地点打电话不起作用,但我建议你尝试以下方法。

 protected override void OnNavigatedTo(NavigationEventArgs e) { EnableScanner(); } private async void EnableScanner() { if (await CreateDefaultScannerObject()) { // after successful creation, claim the scanner for exclusive use and enable it so that data reveived events are received. if (await ClaimScanner()) { Task AsyncSuccess = EnableClaimedScanner(); bool x = await AsyncSuccess; if (x) { HookUpEventsClaimedScanner(); } } } } private async Task CreateDefaultScannerObject() { if (scanner == null) { UpdateOutput("Creating Barcode Scanner object."); scanner = await BarcodeScanner.GetDefaultAsync(); if (scanner != null) { UpdateOutput("Default Barcode Scanner created."); UpdateOutput("Device Id is:" + scanner.DeviceId); } else { UpdateOutput("Barcode Scanner not found. Please connect a Barcode Scanner."); return false; } } return true; } private async Task EnableClaimedScanner() { bool result = false; try { await claimedScanner.EnableAsync(); if (claimedScanner.IsEnabled) { claimedScanner.IsDecodeDataEnabled = true; UpdateOutput("ClaimedScanner is now Enabled."); result = true; } else UpdateOutput("ClaimedScanner wasn't Enabled."); } catch (Exception ex) { UpdateOutput( ex.Message); } return result; } public void HookUpEventsClaimedScanner() { claimedScanner.DataReceived += ScannerDataReceived; claimedScanner.ReleaseDeviceRequested += ScannerReleaseRequest; } 

编辑:我意识到这个问题已经超过一年了,但我发现它在我自己的Windows 8.1嵌入式条形码扫描仪的研究中,所以我想确保它没有引导任何其他人走错路径认为GetDefaultAsync在某些呼叫情况下不起作用。

上述就是C#学习教程:什么时候可以调用`BarcodeScanner.GetDefaultAsync()`?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1003601.html

(0)
上一篇 2021年12月28日
下一篇 2021年12月28日

精彩推荐