我有一个usb连接的MSR阅读器,我试图通过使用here中证明的示例代码来获得它。这工作正常,但问题是当我向我的应用程序添加相同的代码时,它不起作用。 GetDefaultAsync返回null。
private static MagneticStripeReader _reader = null;
public static async void StartRead()
{
if (await CreateDefaultMagneticStripeReaderObject())
{
....
}
}
private static async Task<bool> CreateDefaultMagneticStripeReaderObject()
{
if (_reader == null)
{
_reader = await MagneticStripeReader.GetDefaultAsync();
if (_reader == null)
return false;
}
return true;
}
我的代码就像上面一样,非常类似于样本,但它不起作用。我还添加了pointOfService的设备功能。事实并非如此。
答案 0 :(得分:1)
我处于完全相同的情况,我花了最后5个小时,最后我知道发生了什么。您缺少Package.appxmanifest
中的功能'pointOfService'是您要包含的功能。此功能未在UI中显示,因此我找不到我的破坏项目和Microsoft的示例项目之间的任何差异。您无法使用UI添加该功能。您必须通过修改XML文件手动添加它。
答案 1 :(得分:0)
确保读卡器处于HID模式,而不是键盘仿真模式。那是我的一个问题。
要做到这一点真的很不稳定。 MagTek在他们的网站上有一个ActiveX控件来帮助我们......因为ActiveX很糟糕,你只能在InternetExplorer上使用它(它甚至不能用于Edge。)
转到IE:https://www.magtek.com/changemode/
弹出时启用活动X,您可以从隐藏更改为键盘并返回。