Я разрабатываю приложение для Android, используя Xamarin и EMDK для Zebra TC51.
Проблема в том, что я могу запустить сканер штрих-кода (используя физическую кнопку) только один раз. После этого сканер больше не запускается.
Что может быть причиной этого? Что можно проверить для диагностики?
Выдержка из кода:
Отслеживание статуса:
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 ) );
}
};
Последовательность состояний, которую я могу проследить, следующая:
- Перед запуском: ожидание, бездействие, ожидание
- После срабатывания: сканирование, бездействие
После этого ничего. Результат будет одинаковым, если я эффективно прочитаю штрих-код (и я могу прочитать его один раз) или нет (просто нажав кнопку).