From 99b11059aedf616df4ed3b74300fa59417568bc3 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期二, 08 四月 2025 16:37:38 +0800
Subject: [PATCH] feat: 添加单选按钮文本颜色资源文件

---
 baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NativeNfcReadHelper.java |   69 ++++++++++++++++++++++++++++++++--
 1 files changed, 64 insertions(+), 5 deletions(-)

diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NativeNfcReadHelper.java b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NativeNfcReadHelper.java
index 95ac200..4c8aa09 100644
--- a/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NativeNfcReadHelper.java
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NativeNfcReadHelper.java
@@ -32,8 +32,14 @@
 
 
     public NativeNfcReadHelper(Intent intent, Activity activity) {
+    }
+
+
+    @Override
+    public void setIntent(Intent intent) {
         this.tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
     }
+
 
     /**
      * 鍗曚緥鍒濆鍖�
@@ -45,6 +51,7 @@
         if (helper == null) {
             helper = new NativeNfcReadHelper(intent, activity);
         }
+        helper.setIntent(intent);
         return helper;
     }
 
@@ -55,7 +62,7 @@
      */
     @Override
     public BaseUserCardCard getUserCardData(BaseUserCardCard userCardCard) {
-        if (userCardCard!=null){
+        if (userCardCard != null) {
             BaseUserCardCard userCard = null;
             Map<String, List<byte[]>> map = new HashMap<>();
             MifareClassic mfc = MifareClassic.get(tag);
@@ -118,9 +125,9 @@
         return null;
     }
 
+
     @Override
     public String getCradType() {
-
         MifareClassic mfc = MifareClassic.get(tag);
         if (null != mfc) {
             try {
@@ -386,12 +393,21 @@
                 mfc.connect();
                 //鑾峰彇褰撳墠鍗″彿
                 boolean isOpen = false;
-                for (int i = 0; i < listKeyA.size(); i++) {
-                    if (mfc.authenticateSectorWithKeyA(0, listKeyA.get(i))) {
+                if (!listKeyA.isEmpty()) {
+                    for (int i = 0; i < listKeyA.size(); i++) {
+                        if (mfc.authenticateSectorWithKeyA(0, listKeyA.get(i))) {
+                            isOpen = true;
+                            break;
+                        }
+                    }
+                } else if (!listA_PS.isEmpty()) {
+                    if (mfc.authenticateSectorWithKeyA(0, defauleKey)) {
                         isOpen = true;
-                        break;
+                    } else if (mfc.authenticateSectorWithKeyA(0, listA_PS.get(0))) {
+                        isOpen = true;
                     }
                 }
+
                 if (isOpen) {
                     int bIndex = mfc.sectorToBlock(0);
                     byte[] data = mfc.readBlock(bIndex + 0);
@@ -417,6 +433,49 @@
         return "";
     }
 
+
+    public String getCardNumberNoClose() {
+        MifareClassic mfc = MifareClassic.get(tag);
+        if (null != mfc) {
+            try {
+                mfc.connect();
+                //鑾峰彇褰撳墠鍗″彿
+                boolean isOpen = false;
+                if (!listKeyA.isEmpty()) {
+                    for (int i = 0; i < listKeyA.size(); i++) {
+                        if (mfc.authenticateSectorWithKeyA(0, listKeyA.get(i))) {
+                            isOpen = true;
+                            break;
+                        }
+                    }
+                } else if (!listA_PS.isEmpty()) {
+                    if (mfc.authenticateSectorWithKeyA(0, defauleKey)) {
+                        isOpen = true;
+                    } else if (mfc.authenticateSectorWithKeyA(0, listA_PS.get(0))) {
+                        isOpen = true;
+                    }
+                }
+
+                if (isOpen) {
+                    int bIndex = mfc.sectorToBlock(0);
+                    byte[] data = mfc.readBlock(bIndex + 0);
+                    if (data != null && data.length > 0) {
+                        String hex = HexUtil.bytesToHex(Arrays.copyOfRange(data, 0, 4));
+                        hex = HexUtil.spaceHex(hex);
+                        hex = HexUtil.HighLowHex(hex);
+                        Log.i("NFCWreatActivity", "hex===" + hex);
+                        return hex.toUpperCase();
+                    }
+                }
+
+            } catch (IOException e) {
+                Log.i("NFCWreatActivity", e.toString());
+                return BaseCommon.CARD_TYPE_ERROR1;
+            }
+        }
+        return "";
+    }
+
     /**
      * 鑾峰彇鍗$墖绫诲瀷鍜屽崱鍙�
      *

--
Gitblit v1.8.0