Android 的 EMDK、Xamarin:只能扫描一次
EMDK, Xamarin for Android: scan is possible only once
我正在为 Zebra TC51 使用 Xamarin 和 EMDK 为 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 ) );
}
};
我能追踪到的状态顺序如下:
- 触发前:等待、空闲、等待
- 触发后:扫描,空闲
在那之后什么都没有。如果我有效读取条形码(我可以读取一次)或不有效(只需触发按钮),结果都是一样的。
每次扫描仪进入IDLE状态时都需要再次调用read()才能连续扫描。您应该可以在 https://github.com/Zebra/samples-emdkforxamarin-2_5/blob/BarcodeSample1/BarcodeSample1/BarcodeSample1/MainActivity.cs
上找到一个 Xamarin 示例应用程序
我正在为 Zebra TC51 使用 Xamarin 和 EMDK 为 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 ) );
}
};
我能追踪到的状态顺序如下:
- 触发前:等待、空闲、等待
- 触发后:扫描,空闲
在那之后什么都没有。如果我有效读取条形码(我可以读取一次)或不有效(只需触发按钮),结果都是一样的。
每次扫描仪进入IDLE状态时都需要再次调用read()才能连续扫描。您应该可以在 https://github.com/Zebra/samples-emdkforxamarin-2_5/blob/BarcodeSample1/BarcodeSample1/BarcodeSample1/MainActivity.cs
上找到一个 Xamarin 示例应用程序