ZXing.net.mobile view не может сканировать штрих-коды - PullRequest
0 голосов
/ 18 мая 2018

Обновление: это аппаратная проблема.Это работает на более новом телефоне.

Добавлено ZXing.Net.Mobile и ZXing.Net.Mobile.Forms для проецирования.

Вид сканера и камера выглядят нормально.Флеш кнопка работает.Но OnScanResult никогда не поднимается.Пробовал различные DataMatrix, PDF417 и QR-коды.

Тестовый телефон HTC M9.

ScannerPage.xaml

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:zxing="clr-namespace:ZXing.Net.Mobile.Forms;assembly=ZXing.Net.Mobile.Forms"
             x:Class="MyApp.ScannerPage">
    <ContentPage.Content>
        <Grid VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
            <zxing:ZXingScannerView
                x:Name="ScannerView"/>
            <zxing:ZXingDefaultOverlay
                x:Name="ScannerOverlay"
                TopText="Hold your phone up to the barcode"
                BottomText="Scanning will happen automatically"/>
        </Grid>
    </ContentPage.Content>
</ContentPage>

ScannerPage.xaml.cs

[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class ScannerPage : ContentPage
{
    public ScannerPage()
    {
        InitializeComponent();

        ScannerView.Options = new ZXing.Mobile.MobileBarcodeScanningOptions
        {
            PossibleFormats = new List<BarcodeFormat>
            {
                BarcodeFormat.DATA_MATRIX,
                BarcodeFormat.PDF_417,
                BarcodeFormat.QR_CODE
            },
            TryHarder = true
        };

        ScannerView.OnScanResult += (result) =>
        {
            var x = 3; // Breakpoint here, never hit

            Device.BeginInvokeOnMainThread(async () =>
            {
                // Stop analysis until we navigate away so we don't keep reading barcodes
                //ScannerView.IsAnalyzing = false;

                // Show an alert
                await DisplayAlert("Scanned Barcode", result.Text, "OK");
            });
        };

        ScannerOverlay.ShowFlashButton = ScannerView.HasTorch;
        ScannerOverlay.FlashButtonClicked += (se, ev) => ScannerView.ToggleTorch();
    }

    protected override void OnAppearing()
    {
        base.OnAppearing();
        ScannerView.IsAnalyzing = true;
        ScannerView.IsScanning = true;
    }

    protected override void OnDisappearing()
    {
        base.OnDisappearing();
        ScannerView.IsScanning = false;
    }
}

1 Ответ

0 голосов
/ 18 мая 2018

Может быть аппаратная проблема .. камера низкого разрешения?попробуйте более свежий смартфон ...

Вы также можете попробовать использовать "самый простой" штрих-код (code128, ean8, ean13 ...)

...