使用模拟器的 Windows Mobile 应用程序进行条形码扫描

3

我希望开发一个简单的应用程序,用于Motorolo MC 9190 G移动设备。它内置了条形码扫描仪,我想扫描条形码并在消息框中显示它们。由于我没有这个手机,所以我必须在模拟器中测试它。当我在模拟器中部署代码时,会出现空指针异常错误。我的代码是:我添加了sample.barcode dll。

Private barcodeReader As Symbol.Barcode.Reader // error occurs here itself 
barcodeReader = New Symbol.Barcode.Reader()
barcodeReader.Actions.Enable()
Dim nextReaderData As Symbol.Barcode.ReaderData = barcodeReader.GetNextReaderData()
MessageBox.Show(nextReaderData.Text)

我是一个新手,请帮助我,这与IT技术有关。


你的模拟器有条码阅读器吗?你如何模拟读取条码? - user153923
1个回答

3
你需要创建一个接口和模拟,类似以下的内容:
interface IBarcodeReader
{
    string ReadBarcode();
}

public class SymbolReader : IBarcodeReader
{
    private Reader m_reader;

    public SymbolReader()
    {
        m_reader = new SymbolReader.Barcode.Reader;
        m_reader.Actions.Enable();
    }

    public string ReadBarcode()
    {
        return m_reader.GetNextReaderData().Text;
    }
}

public class MockReader : IBarcodeReader
{
    public string ReadBarcode()
    {
        return "MOCK ABCDE";
    }
}

然后在运行时,使用一些逻辑来确定你所在的平台,并创建相应的实例:

public class Foo
{
    IBarcodeReader Reader { get; set; }

    public Foo()
    {
        if (ThisIsASymbolDevice)
        {
            Reader = new SymbolReader();
        }
        else
        {
            Reader = new MockReader();
        }

        var barcode = Reader.ReadBarcode();
    }
}

很好的解决方法。由于模拟器不知道也不支持条形码阅读器,因此无法在模拟器上使用符号DLL和运行时。通过使用兼容性层,您可以模拟真实硬件将提供的内容。 - josef
我们还可以在OpenNETCF.IoC模块中将SymbolReader和MyOwnScanner实现为服务;-) - hellboy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接