Сбой приложения и остановка чтения штрих-кода
Привет,
Приложение выходит из строя через некоторое время и перестает сканировать штрих-код. Каждый раз, когда я должен перезагрузить свое устройство, чтобы продолжить сканирование.
Я использую Honeywell device и windows phone 8.1.
Не могли бы вы мне в этом помочь?
Что я уже пробовал:
<pre lang="c#">private BarcodeScanner scanner; private ClaimedBarcodeScanner claimedScanner; StorageFile myFile = null; private const string ProfileFileName = "HoneywellDecoderSettingsV2.exm"; private async void UpdateUI_scandata(string symCode, string data) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { textBox.Text = data; Audio_Player.Play(); }); System.Diagnostics.Debug.WriteLine(data); } private async void ClaimBarcodeScanner() { string x = string.Empty; if (scanner == null) { scanner = await BarcodeScanner.GetDefaultAsync(); i = 1; if (claimedScanner == null && scanner != null) { claimedScanner = await scanner.ClaimScannerAsync(); } } if (claimedScanner != null && scanner != null) { claimedScanner.DataReceived += claimedScanner_DataReceived; await claimedScanner.EnableAsync(); claimedScanner.IsDecodeDataEnabled = true; j = scanner.GetSupportedProfiles().Count(); foreach (string ProfileName in scanner.GetSupportedProfiles()) { x = ProfileName; i++; if (ProfileName == "Retail Demo Profile") { await claimedScanner.SetActiveProfileAsync(ProfileName); } } } } async void claimedScanner_DataReceived(ClaimedBarcodeScanner sender, BarcodeScannerDataReceivedEventArgs args) { string label; UInt32 symCode = args.Report.ScanDataType; using (var datareader = Windows.Storage.Streams.DataReader.FromBuffer(args.Report.ScanDataLabel)) { label = datareader.ReadString(args.Report.ScanDataLabel.Length); } UpdateUI_scandata(BarcodeSymbologies.GetName(symCode), label); } private async void WriteProfieFiletoDevice() { myFile = null; StorageFolder _folder = await KnownFolders.DocumentsLibrary.CreateFolderAsync("Profile", CreationCollisionOption.OpenIfExists); var uri = new System.Uri("ms-appx:///Assets/" + ProfileFileName); StorageFile profileFile = await StorageFile.GetFileFromApplicationUriAsync(uri); String profileContent = await FileIO.ReadTextAsync(profileFile); myFile = await _folder.CreateFileAsync(ProfileFileName, CreationCollisionOption.OpenIfExists); await FileIO.WriteTextAsync(myFile, profileContent); }
Richard MacCutchan
Как вам помочь?
Harish Kumar Bansal
Что я делаю неправильно, так как мое приложение выходит из строя после двух или трех успешных сканирований. После сбоев, когда я снова открываюсь, то не могу сканировать один раз, а затем мне приходится перезапускать свое приложение.
Richard MacCutchan
Затем вам нужно выполнить некоторую отладку, чтобы выяснить, где он выходит из строя и какие строки кода и переменные являются причиной. Мы не можем догадаться, что происходит, когда выполняется ваш код.
Harish Kumar Bansal
Не в состоянии отлаживать на телефоне, так как сканирование работает только на ручном устройстве.
Ralf Meier
Затем позвольте вашему коду работать в системе, где вы можете его отладить. Я не верю, что ваша ошибка зависит только от вашего телефона.
(... или купите хорошую стеклянную чашу ...)
Kenneth Haugland
Есть телефонные эмуляторы с отладчиками, или вы можете просто разбить свой телефон :D
Sinisa Hajnal
Убедитесь, что вы закрываете/удаляете все элементы/файлы, отменяете привязку всех событий и т. д. После завершения сканирования. Кроме того, проверьте наличие доступа или удаления уже открытых файлов...кроме этого, мы не можем отладить для вас, найти эмулятор и приступить к работе. Удачи вам!
Harish Kumar Bansal
Привет Синиса,
Спасибо! ваше предложение действительно помогло мне, и теперь мое приложение работает гораздо лучше, чем раньше.