ZXing.Net.Mobile扫描没有触发

时间:2014-04-11 18:59:07

标签: c# mono xamarin.android xamarin barcode-scanner

我目前正在尝试将this组件实现到我使用Xamarins mono for andriod构建的Android应用程序中。

我遇到此问题,我无法从scanner.Scan();方法返回任何结果,扫描仪启动但没有任何反应?!

所以我尝试从github下载示例项目,当我尝试使用提供的示例代码扫描条形码时,它也是同样的问题。它不会开火。以下是一些负责启动扫描程序和处理结果的代码:

public async void ScanArticleNumber()
        {
            //Tell our scanner to use the default overlay
            scanner.UseCustomOverlay = false;

            //We can customize the top and bottom text of the default overlay
            scanner.TopText = "Hold the camera up to the barcode\nAbout 6 inches away";
            scanner.BottomText = "Wait for the barcode to automatically scan!";

            //Start scanning
            var result = await scanner.Scan();

            HandleScanResult(result);
        }

void HandleScanResult(ZXing.Result result)
        {
            string msg = "";

            if (result != null && !string.IsNullOrEmpty(result.Text))
                msg = "Found Barcode: " + result.Text;
            else
                msg = "Scanning Canceled!";

            Activity.RunOnUiThread(() =>
            {
                Toast.MakeText(Activity.BaseContext, msg, ToastLength.Short).Show();
            });
        }

即使我用相机拍摄大量条形码,代码也永远不会到达HandleScanResult方法。

任何想法为什么?

1 个答案:

答案 0 :(得分:1)

Github下载最新版本的ZXing.Net.Mobile解决了问题 然后运行该示例项目并从bin文件夹中获取以下dll:

  • ZXing.Net.Mobile.dll
  • zxing.monoandroid.dll
  • Xamarin.Android.Support.v4.dll

我用这些替换了我当前的ddls并且它有效!这可能是因为我从xamarin components首次下载了dll,文件可能不是最新的。

希望这有帮助。