ZXing.Net.Mobile 调用 Scan() 方法时出现条码扫描器错误
ZXing.Net.Mobile Barcode scanner error when I call Scan() method
我正在尝试将条码扫描仪应用到我的 windows 通用应用程序中。
我正在使用 ZXing.Net.Mobile
var _scanner = new MobileBarcodeScanner(this.Dispatcher);
var result = await _scanner.Scan();
然后,Visual Studio停在这一行
if (global::System.Diagnostics.Debugger.IsAttached) global::System.Diagnostics.Debugger.Break();
那么,如何解决这个问题呢?
I don't get an exception, the VS just highlights the line mentioned above. I believe the problem is that I don't have ZXing.Net.Mobile.WindowsUniversal in the references. but I can't find it in NuGet.
你可以点击vs的"Tools"然后选择标签"NuGet Package Manager"然后select"Manage NuGet Package for Solution",在"Browse"标签中搜索"ZXing.Net.Mobile",如果你开发的是Uwp应用,选择"ZXing.Net.Mobile",如果你使用Xamarin开发,选择"ZXing.Net.Mobile.Forms",window,[=37]右边=] 您的项目并单击安装。
这是我安装完这个包的图片:
我已经在按钮点击事件中测试了您的代码,您发布的代码可以在安装此包后进行调试。
但是如果我在本机调试,同样的错误,这个是可能的,因为我的电脑上没有扫描仪可以初始化,所以我在手机模拟器上测试,就不会出现这个错误.
if (global::System.Diagnostics.Debugger.IsAttached) global::System.Diagnostics.Debugger.Break();
其他一些问题也可能导致,如果我的回答不能解决您的问题,您可以添加评论。
I think the exception is "Access is denied"
这是您对问题的最新评论,当您想在应用中使用 ZXing 时,您需要打开项目的清单文件,选择 "Capabilities" 标签,然后在左侧启用 "Internet(Client)"、"Microphone" 和 "Webcam" 功能。刚刚测试过,如果你没有启用这个功能,在手机模拟器上也会出现同样的错误。这也是这个问题的可能原因。
必须在UWP主页设置。
this.InitializeComponent();
this.NavigationCacheMode = NavigationCacheMode.Enabled; ZXing.Net.Mobile.Forms.WindowsUniversal.ZXingScannerViewRenderer.Init();
然后在 Xamarin 表单或本机应用程序页面中单击按钮
var options = new ZXing.Mobile.MobileBarcodeScanningOptions();
options.TryHarder=true;
var scanner = new ZXing.Mobile.MobileBarcodeScanner();
scanner.TopText="Hold For Scanning";
scanner.BottomText="Tally Scan";
var result = await scanner.Scan(options);
if (result != null) {
updateListWithText (result.Text);
}
@hatim
使用前需要先初始化扫描仪。
在开始使用扫描仪之前将此行添加到您的代码中。你只需要这样做一次。所以把它放在你的主要 activity
` MobileBarcodeScanner.Initialize(Application);`
我正在尝试将条码扫描仪应用到我的 windows 通用应用程序中。 我正在使用 ZXing.Net.Mobile
var _scanner = new MobileBarcodeScanner(this.Dispatcher);
var result = await _scanner.Scan();
然后,Visual Studio停在这一行
if (global::System.Diagnostics.Debugger.IsAttached) global::System.Diagnostics.Debugger.Break();
那么,如何解决这个问题呢?
I don't get an exception, the VS just highlights the line mentioned above. I believe the problem is that I don't have ZXing.Net.Mobile.WindowsUniversal in the references. but I can't find it in NuGet.
你可以点击vs的"Tools"然后选择标签"NuGet Package Manager"然后select"Manage NuGet Package for Solution",在"Browse"标签中搜索"ZXing.Net.Mobile",如果你开发的是Uwp应用,选择"ZXing.Net.Mobile",如果你使用Xamarin开发,选择"ZXing.Net.Mobile.Forms",window,[=37]右边=] 您的项目并单击安装。
这是我安装完这个包的图片:
我已经在按钮点击事件中测试了您的代码,您发布的代码可以在安装此包后进行调试。
但是如果我在本机调试,同样的错误,这个是可能的,因为我的电脑上没有扫描仪可以初始化,所以我在手机模拟器上测试,就不会出现这个错误.
if (global::System.Diagnostics.Debugger.IsAttached) global::System.Diagnostics.Debugger.Break();
其他一些问题也可能导致,如果我的回答不能解决您的问题,您可以添加评论。
I think the exception is "Access is denied"
这是您对问题的最新评论,当您想在应用中使用 ZXing 时,您需要打开项目的清单文件,选择 "Capabilities" 标签,然后在左侧启用 "Internet(Client)"、"Microphone" 和 "Webcam" 功能。刚刚测试过,如果你没有启用这个功能,在手机模拟器上也会出现同样的错误。这也是这个问题的可能原因。
必须在UWP主页设置。
this.InitializeComponent();
this.NavigationCacheMode = NavigationCacheMode.Enabled; ZXing.Net.Mobile.Forms.WindowsUniversal.ZXingScannerViewRenderer.Init();
然后在 Xamarin 表单或本机应用程序页面中单击按钮
var options = new ZXing.Mobile.MobileBarcodeScanningOptions();
options.TryHarder=true;
var scanner = new ZXing.Mobile.MobileBarcodeScanner();
scanner.TopText="Hold For Scanning";
scanner.BottomText="Tally Scan";
var result = await scanner.Scan(options);
if (result != null) {
updateListWithText (result.Text);
}
@hatim 使用前需要先初始化扫描仪。
在开始使用扫描仪之前将此行添加到您的代码中。你只需要这样做一次。所以把它放在你的主要 activity
` MobileBarcodeScanner.Initialize(Application);`