我正在测试我正在制作的扫描条形码的应用程序。这个应用程序将是跨平台的,所以我使用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();
}
}
答案 0 :(得分:0)
事实证明这是Xamarin的Scandit库的一个错误。我给开发人员发了电子邮件,他们告诉我它应该在下一个版本中修复,他们说这个版本将在11月中旬发布。我下载了他们最新的Scandit演示应用程序,该应用程序刚刚更新,现在工作正常。
因此,当Scandit 4.3公开时,应该解决这个问题。