Harish Kumar Bansal Ответов: 0

Сбой приложения и остановка чтения штрих-кода


Привет,

Приложение выходит из строя через некоторое время и перестает сканировать штрих-код. Каждый раз, когда я должен перезагрузить свое устройство, чтобы продолжить сканирование.

Я использую 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

Привет Синиса,
Спасибо! ваше предложение действительно помогло мне, и теперь мое приложение работает гораздо лучше, чем раньше.

0 Ответов