【发布时间】:2019-03-28 12:59:54
【问题描述】:
我正在尝试使用集成的条形码扫描仪编写应用程序。 我遵循了本教程: https://www.c-sharpcorner.com/article/xamarin-android-qr-code-reader-by-mobile-camera/
扫描工作正常且速度非常快(在我使用 ZXing.Net.Mobile 之前,它非常慢)。 现在我需要一些帮助来集成应用程序仅在用户按下按钮而不是整个时间时检测到一个条形码。也许延迟也能解决问题。
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.ScannerTest);
surfaceView = FindViewById<SurfaceView>(Resource.Id.cameraView);
txtResult = FindViewById<TextView>(Resource.Id.txtResult);
barcodeDetector = new BarcodeDetector.Builder(this)
.SetBarcodeFormats(BarcodeFormat.Code128 | BarcodeFormat.Ean13 | BarcodeFormat.QrCode)
.Build();
cameraSource = new CameraSource
.Builder(this, barcodeDetector)
.SetRequestedPreviewSize(320, 480)
.SetAutoFocusEnabled(true)
.Build();
surfaceView.Click += StartScanning;
surfaceView.Holder.AddCallback(this);
//barcodeDetector.SetProcessor(this);
}
private void StartScanning(object sender, EventArgs e)
{
barcodeDetector.SetProcessor(this);
}
public void ReceiveDetections(Detections detections)
{
SparseArray qrcodes = detections.DetectedItems;
if (qrcodes.Size() != 0)
{
txtResult.Post(() => {
//Vibrator vibrator = (Vibrator)GetSystemService(Context.VibratorService);
//vibrator.Vibrate(1000);
txtResult.Text = ((Barcode)qrcodes.ValueAt(0)).RawValue;
});
}
}
在用户按下 SurfaceView 的那一刻,扫描仪启动并且永不停止。
有没有可能,它只是在按下“按钮”后扫描一个?
r3d007
【问题讨论】:
-
看看这个post可能会有所帮助。
标签: c# xamarin.android