我正在用Xamarin Forms和Prism开发应用程序。我正在使用Zebra SDK来使用条形码扫描仪硬件。 我拦截与MessagingCenter条形码扫描事件,我在MainActivity.cs发送声明:在Zebra TC51中挂起条码扫描器
Xamarin.Forms.MessagingCenter.Send<App, string>(_my_application, "Barcode", data.Data);
,我接收扫描数据的ViewModels与订阅:
Xamarin.Forms.MessagingCenter.Subscribe<App, string>(this, "Barcode", (sender, arg) =>
{
...
}
现在我需要在发生功能错误时停止条形码扫描器。我通常会弹出一条消息:
_pageDialogService.DisplayAlertAsync("Barcode Scanner", "My message", "OK");
我想在用户点击“确定”按钮后再次启用扫描仪。 (我希望这是一个屏蔽消息) 我该怎么做?问题是我的条码扫描器代码位于MainActivity中,我不知道如何从ViewModel代码中停止和恢复条码扫描器。弹出消息是不够的,因为扫描仪是由硬件按钮触发的。
嗨亚历山德罗,我认为布尔变量作为解决方法是一个很好的解决方案,但扫描的“哔哔”声仍然存在。我怎样才能将此声音静音?否则,DependencyService解决方案对我来说可能很好,我对其他功能(例如ISQLite)使用DependencyService。但我不知道如何使用Zebra SDK为条形码扫描器构造DependencyService。感谢您的帮助。 – TeoVr81
我看看http://techdocs.zebra.com/emdk-for-android/4-2/tutorial/tutBasicScanningAPI/似乎有一个scanner.disable。我认为你可以尝试在一个依赖服务中使用这个属性 –