From 4ceacd9e21e09989287e8dc4e526d182091af282 Mon Sep 17 00:00:00 2001
From: zuoxiao <lf_zuo@163.com>
Date: 星期四, 26 六月 2025 13:39:52 +0800
Subject: [PATCH] feat(nfc): 优化 NFC卡片处理流程

---
 baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NativeNfcWriteHelper.java |   31 ++++++++++++++++++++++++++++---
 1 files changed, 28 insertions(+), 3 deletions(-)

diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NativeNfcWriteHelper.java b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NativeNfcWriteHelper.java
index f03959a..30068ec 100644
--- a/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NativeNfcWriteHelper.java
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NativeNfcWriteHelper.java
@@ -356,10 +356,35 @@
             }
 
             try {
-                // 杩炴帴NFC
-                if (isConnect) {
-                    mfc.connect();
+                // 杩炴帴NFC - 纭繚鎬绘槸寤虹珛杩炴帴锛屽鍔犻噸璇曟満鍒�
+                int retryCount = 3;
+                boolean connected = false;
+                while (retryCount > 0 && !connected) {
+                    try {
+                        if (!mfc.isConnected()) {
+                            mfc.connect();
+                        }
+                        connected = mfc.isConnected();
+                        if (!connected) {
+                            Thread.sleep(100); // 鐭殏绛夊緟鍚庨噸璇�
+                            retryCount--;
+                        }
+                    } catch (Exception e) {
+                        retryCount--;
+                        if (retryCount <= 0) {
+                            throw e;
+                        }
+                        Thread.sleep(100);
+                    }
                 }
+
+                if (!connected) {
+                    if (callBack != null) {
+                        callBack.isSusses(false, "NFC杩炴帴澶辫触锛岃閲嶆柊闈犺繎鍗$墖");
+                    }
+                    return false;
+                }
+
                 for (int i = 0; i < passWord.size(); i++) {
                     byte[] passWordItem = passWord.get(i);
                     // 楠岃瘉鎵囧尯瀵嗙爜

--
Gitblit v1.8.0