使用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即可出现卡号
如果没有卡号的话: