|
@@ -3,26 +3,44 @@ import 'package:get/get.dart';
|
|
|
import 'package:idread/model/id_card_info_model.dart';
|
|
|
import 'package:vitalapp/architecture/utils/prompt_box.dart';
|
|
|
import 'package:idread/idread.dart';
|
|
|
+import 'package:vitalapp/managers/interfaces/device.dart';
|
|
|
+import 'package:vitalapp/managers/interfaces/models/device.dart';
|
|
|
+import 'package:vnote_device_plugin/consts/types.dart';
|
|
|
|
|
|
class CardReaderController extends GetxController {
|
|
|
CardReaderController();
|
|
|
|
|
|
bool isCardReaderConnected = false; // 是否连接读卡器
|
|
|
+ bool isCardReaderBinding = false; //是否绑定读卡器
|
|
|
|
|
|
_initData() async {
|
|
|
- bool result = await Idread.init();
|
|
|
- if (result) {
|
|
|
- bool start = await Idread.startRead();
|
|
|
- if (start) {
|
|
|
- Idread.dataStreamListen((data) {
|
|
|
- if (data is IdCardInfoModel) {
|
|
|
- onReadInfo(data);
|
|
|
- }
|
|
|
- });
|
|
|
+ var isBinding = await getDevice(DeviceTypes.IC_READER);
|
|
|
+ if (isBinding) {
|
|
|
+ bool result = await Idread.init();
|
|
|
+ if (result) {
|
|
|
+ bool start = await Idread.startRead();
|
|
|
+ if (start) {
|
|
|
+ Idread.dataStreamListen((data) {
|
|
|
+ if (data is IdCardInfoModel) {
|
|
|
+ onReadInfo(data);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
+ isCardReaderConnected = result;
|
|
|
+ update(["card_reader"]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ Future<bool> getDevice(String type) async {
|
|
|
+ List<DeviceModel> devices =
|
|
|
+ await Get.find<IDeviceManager>().getDeviceList();
|
|
|
+ var device = devices.firstWhereOrNull((element) => element.type == type);
|
|
|
+ if (device != null) {
|
|
|
+ return true;
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
}
|
|
|
- isCardReaderConnected = result;
|
|
|
- update(["card_reader"]);
|
|
|
}
|
|
|
|
|
|
void checkReader() async {
|