智能卡读卡器插件(插入卡)事件

Posted

技术标签:

【中文标题】智能卡读卡器插件(插入卡)事件【英文标题】:Smart Card Reader Plugin (Card Inserted) Event 【发布时间】:2016-11-24 12:13:59 【问题描述】:

背景:

我正在创建一个 Windows 10 通用应用程序,它从智能卡(插入智能卡读卡器)读取一些数据并且它工作正常,但在所有情况下,用户都应该触发该过程从卡中读取数据。

问题:

如何处理 UWP 中的“卡插入事件”,以便每次插入卡后都可以从卡中读取数据?

【问题讨论】:

【参考方案1】:

我不熟悉 UWP,但我发现了这个 example。

它创建一个智能卡读卡器实例:

private SmartCardReader reader = provisioning.SmartCard.Reader;

并向其添加CardAdded 处理程序:

reader.CardAdded += HandleCardAdded;

HandlerCardAdded 看起来像这样:

void HandleCardAdded(SmartCardReader sender, CardAddedEventArgs args)

    // This event handler will not be invoked on the UI thread.  Hence,
    // to perform UI operations we need to post a lambda to be executed
    // back on the UI thread; otherwise we may access objects which
    // are not marshalled for the current thread, which will result in an
    // exception due to RPC_E_WRONG_THREAD.
    uiContext.Post((object ignore) =>
    
        rootPage.NotifyUser("Card added to reader " + reader.Name + ".", NotifyType.StatusMessage);
    , null);

希望对您有所帮助。

【讨论】:

以上是关于智能卡读卡器插件(插入卡)事件的主要内容,如果未能解决你的问题,请参考以下文章

智能卡读卡器,无法读取某些卡

如何在 C++ 中监听智能卡插入和删除事件?

智能卡未响应重置

如何在没有卡的情况下向智能卡读卡器(而不是智能卡)发送命令?

在当前阅读器上的智能卡上查找证书

使用 java smartcardio 函数发送 APDU 命令以将数据写入智能卡读卡器