用设备摩托罗拉XT907进行Scandit - 相机无法对焦

时间:2014-10-29 19:15:29

标签: c# android camera barcode barcode-scanner

我正在测试我正在制作的扫描条形码的应用程序。这个应用程序将是跨平台的,所以我使用Visual Studio开发Xamarin。我决定使用Scandit,因为它似乎是Xamarin最好的条形码扫描库。

我遇到的问题是这个特定的设备,相机非常模糊,似乎无法自动对焦。因此,我很难得到任何正确扫描的东西。

手机内置的相机应用程序效果很好,并且很好用。其他条形码应用程序似乎也能够很好地关注。我在另一台Android设备上试过我的应用程序,它运行正常。它似乎是这个特定设备和Scandit的组合。

正在扫描的条形码类型都是代码128。我禁用了所有其他类型,这似乎有点帮助,但它仍然很难扫描。

这是我的代码:

public class MainActivity : Activity, Scandit.Interfaces.IScanditSDKListener
{
    private ScanditSDKBarcodePicker picker;
    const string APP_KEY = "it's a secret.";

    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);

        SetContentView(Resource.Layout.Main);            

        Button button = FindViewById<Button>(Resource.Id.MyButton);

        button.Click += delegate
        {
            picker = new ScanditSDKBarcodePicker(this, APP_KEY);
            picker.OverlayView.AddListener(this);

            picker.SetCode39Enabled(false);
            picker.SetCode93Enabled(false);
            picker.SetEan13AndUpc12Enabled(false);
            picker.SetEan8Enabled(false);
            picker.SetUpceEnabled(false);
            picker.SetItfEnabled(false);
            picker.SetMsiPlesseyEnabled(false);
            picker.SetGS1DataBarEnabled(false);
            picker.SetGS1DataBarExpandedEnabled(false);
            picker.SetQrEnabled(false);
            picker.SetDataMatrixEnabled(false);
            picker.SetPdf417Enabled(false);
            picker.SetCodabarEnabled(false);

            picker.StartScanning();

            SetContentView(picker);
        };
    }

    public void DidScanBarcode(string barcode, string symbology)
    {
        Toast.MakeText(this, string.Format("barcode scanned: {0}, '{1}'", symbology, barcode), ToastLength.Long).Show();
    }

    public void DidCancel()
    {
        Toast.MakeText(this, "Cancel was pressed.", ToastLength.Long).Show();
    }

    public void DidManualSearch(string text)
    {
        Toast.MakeText(this, "Search was used. " + text, ToastLength.Long).Show();
    }
} 

1 个答案:

答案 0 :(得分:0)

事实证明这是Xamarin的Scandit库的一个错误。我给开发人员发了电子邮件,他们告诉我它应该在下一个版本中修复,他们说这个版本将在11月中旬发布。我下载了他们最新的Scandit演示应用程序,该应用程序刚刚更新,现在工作正常。

因此,当Scandit 4.3公开时,应该解决这个问题。