EMDK,Xamarin for Android:扫描只能进行一次

时间:2018-02-19 13:28:13

标签: xamarin.android motorola-emdk

我正在使用Xamarin和EMDK为Zebra TC51开发Android应用程序。

问题是我只能触发条形码扫描器(使用物理按钮)一次。之后,扫描仪不再运行。

原因可能是什么?我可以检查什么进行诊断?

代码摘录:

跟踪状态:

scanner.Status += ( s, e ) =>
{
    try
    {
        StatusData statusData = e.P0;
        StatusData.ScannerStates state = e.P0.State;

        this.RunOnUiThread( () => StateMessage( "Scanner state : " + state.Name() ) );
    }
    catch ( System.Exception exc )
    {
        this.RunOnUiThread( () => StateMessage( "Scanner state exception : " + exc.Message ) );
    }
};

和收到的数据:

scanner.Data += ( s, e ) =>
{
    try
    {
        var statusData = e.P0;
        var scanData = e.P0.GetScanData();

        foreach ( var sd in scanData )
        {
            this.RunOnUiThread( () => StateMessage( "Scanned : " + sd.Data ) );
        }
    }
    catch ( System.Exception exc )
    {
        this.RunOnUiThread( () => StateMessage( "Scanner data exception : " + exc.Message ) );
    }
};

我可以跟踪的状态序列如下:

  • 触发前:等待,空闲,等待
  • 触发后:扫描,空闲
之后什么都没有。如果我有效地读取条形码(我可以读取一次)或者没有(只是触发按钮),结果是一样的。

1 个答案:

答案 0 :(得分:1)

每次扫描仪进入IDLE状态时,您需要再次调用read()以启用连续扫描。您可以在https://github.com/Zebra/samples-emdkforxamarin-2_5/blob/BarcodeSample1/BarcodeSample1/BarcodeSample1/MainActivity.cs

上找到一个Xamarin示例应用