0

我正在尝试使用 SDK 附带的 C# 设备编程示例在 Windows 8 上试验 ACR122 读卡器。当我启动示例时,我没有在可用设备列表中看到读卡器。

我认为这不是一般的驱动程序问题,因为用于配置阅读器的工具(预编译的二进制文件)列出了阅读器并允许连接到它。

我是 C# 和 .NET 的新手。如果有人能给我一些关于确定问题所在的建议,我会很高兴。如果您需要更多信息,我很乐意为您提供。

4

2 回答 2

3

我也不是专家,我目前正在使用 ACR122U 阅读器,并且这些示例对我来说也不是很完美。但是,我能够编写一个小 C# 程序,这样我就可以在智能卡上读/写少量文本(转换为十六进制)。所以我建议你试着自己写,就像我一样,我会给你一些让我开始的代码(我使用了 pcsc-sharp dll):

using PCSC;

namespace SmartcardCheck
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var context = new SCardContext())
            {
                context.Establish(SCardScope.System);

                string[] readerNames = null;
                try
                {
                    // retrieve all reader names
                    readerNames = context.GetReaders();

                    // get the card status of each reader that is currently connected
                    foreach (var readerName in readerNames)
                    {
                        using (var reader = new SCardReader(context))
                        {
                            Console.WriteLine("Trying to connect to reader {0}.", readerName);

                            var sc = reader.Connect(readerName, SCardShareMode.Shared, SCardProtocol.Any);
                            if (sc == SCardError.Success)
                            {
                                DisplayReaderStatus(reader);
                            }
                            else
                            {
                                Console.WriteLine("No card inserted or reader is reserved exclusively by another application.");
                                Console.WriteLine("Error message: {0}\n", SCardHelper.StringifyError(sc));
                            }
                        }
                    }
                }
                catch (Exception)
                {
                    if (readerNames == null)
                    {
                        Console.WriteLine("No readers found.");
                        return;
                    }
                }

                Console.ReadKey();
            }
        }
    }
}

希望它可以帮助你:)

于 2013-10-14T07:50:17.140 回答
1

Windows 不将 ACR122 视为 NFC(接近)设备,它是具有读取 NFC 卡功能的智能卡设备。要在现代应用程序中或通过 WinRT API 使用它,您实际上需要使用引入了对智能卡的支持的 Windows 8.1。

于 2013-08-21T06:39:01.387 回答