开发nfc读卡器应用出现报错Unhandled Exception: SCARD_E_NO_SERVICE

255 阅读1分钟

使用flutter开发ACR122U的nfc读卡器的时候,报错:

[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Exception: Error while establing context. Reason: SCARD_E_NO_SERVICE
#0      PCSCBinding._checkAndThrow (package:flutter_pcsc_windows/src/pcsc_bindings.dart:48:7)
#1      PCSCBinding.establishContext (package:flutter_pcsc_windows/src/pcsc_bindings.dart:38:7)
#2      PcscWindows.establishContext (package:flutter_pcsc_windows/src/pcsc_windows.dart:18:21)
#3      Pcsc.establishContext (package:flutter_pcsc/src/flutter_pcsc.dart:15:22)
#4      _HomeState.getCardSerialNumber (package:flutter_windows/pages/home2.dart:186:26)
#5      _HomeState.listenNfc (package:flutter_windows/pages/home2.dart:233:11)
#6      _HomeState.initAsyncUser.<anonymous closure> (package:flutter_windows/pages/home2.dart:100:7)
#7      _Timer._runTimers (dart:isolate-patch/timer_impl.dart:398:19)

查看微软给的提示:

解决办法

说明一下我这边的情况:

我用的parallels desktop虚拟机打开的windows系统,我用一个简单的工具测试了一下无法读到读卡器设备的结果,后来通过设置虚拟机设备 > 允许访问这个读卡器设备,才读到了nfc卡片内容

我用rust写的一个windows读卡测试软件:NfcTest.exe - 蓝奏云

打开后如果正常就会循环输出nfc卡号:

或者是我用flutter写的一个测试软件:NfcFlutter.zip - 蓝奏云

如果有识别到有nfc卡的话,点击一下底部的try again即可出现卡号

如果没有卡号的话: