I am trying to read barcode through Xamarin Forms Application but unfortunately couldn't read the barcode. What I want is when scanner is opened, I want the results real time on same screen. I am using ZXing 2.2.9 nuget as 4.2.1 is not supported. Below is my code.
<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="WarehouseApp.Views.ScanAndReceive.ScanReceive">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="4*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<zxing:ZXingScannerView x:Name="zxing"
VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand"/>
<zxing:ZXingDefaultOverlay TopText="Hold your phone up to the barcode"
BottomText="Scanning will happen automatically"/>
<Label x:Name="lblResult"
Grid.Row="1"
TextColor="Red"
HorizontalOptions="Center"
VerticalOptions="Center"
HorizontalTextAlignment="Center"
VerticalTextAlignment="Center"/>
</Grid>
</ContentPage>
public ScanReceive()
{
InitializeComponent();
ZXing.Net.Mobile.Forms.ZXingScannerPage scanPage = new ZXing.Net.Mobile.Forms.ZXingScannerPage();
scanPage.IsScanning = true;
scanPage.OnScanResult += (result) => Device.BeginInvokeOnMainThread(() => {
lblResult.Text = "abc";
});
//BtnScan_OnClicked();
}
protected override void OnAppearing()
{
base.OnAppearing();
lblResult.Text = "test";
}
MainActivity.cs
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
ZXing.Net.Mobile.Forms.Android.Platform.Init();
LoadApplication(new App());
Window.SetStatusBarColor(Android.Graphics.Color.Rgb(236, 178, 66));
}
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
{
Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
this is what I have tried so far...