From 6a5879320dfac43155d024814a0a4d794a612696 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期三, 21 八月 2024 13:52:14 +0800
Subject: [PATCH] 齐河联网版程序除补卡相关逻辑

---
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NfcReadHelper.java |   72 +++++++++++++++++++++++++++++++++++-
 1 files changed, 70 insertions(+), 2 deletions(-)

diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NfcReadHelper.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NfcReadHelper.java
index 5d89eeb..424c0d1 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NfcReadHelper.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NfcReadHelper.java
@@ -9,6 +9,7 @@
 
 import com.dayu.baselibrary.tools.HexUtil;
 import com.dayu.baselibrary.utils.BaseCommon;
+import com.dayu.qiheonlinelibrary.card.ManagerToUserCard;
 import com.dayu.qiheonlinelibrary.card.UserCard;
 import com.dayu.qiheonlinelibrary.utils.CardCommon;
 
@@ -135,8 +136,8 @@
                     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);
+                        hex = HexUtil.spaceHex(hex);
+                        hex = HexUtil.HighLowHex(hex);
                         Log.i("NFCWreatActivity", "hex===" + hex);
                         return hex.toUpperCase();
                     }
@@ -178,6 +179,8 @@
                     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);
                         strData.append(hex);
                         strData.append(",");
                         Log.i("NFCWreatActivity", "hex===" + hex);
@@ -476,6 +479,71 @@
         }).start();
     }
 
+
+    /**
+     * 鑾峰彇鐢ㄦ埛鍗′俊鎭�
+     *
+     * @return
+     */
+    public ManagerToUserCard getManagerToUserCardData() {
+        ManagerToUserCard managerToUserCard = null;
+        Map<String, List<byte[]>> map = new HashMap<>();
+        MifareClassic mfc = MifareClassic.get(tag);
+        if (null != mfc) {
+            try {
+                //閾炬帴NFC
+                mfc.connect();
+                //鑾峰彇鎵囧尯鏁伴噺
+                int count = mfc.getSectorCount();
+                //瀛樺偍绌洪棿
+                int size = mfc.getSize();
+                //鐢ㄤ簬鍒ゆ柇鏃跺�欐湁鍐呭璇诲彇鍑烘潵
+                boolean flag = false;
+                List<byte[]> list = new ArrayList<>();
+                //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級
+                boolean isOpen = mfc.authenticateSectorWithKeyA(1, defauleKey);
+                if (!isOpen) {
+                    isOpen = mfc.authenticateSectorWithKeyA(1, companyKey);
+                }
+                if (isOpen) {
+                    //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺
+                    int bCount = mfc.getBlockCountInSector(1);
+                    //鑾峰彇鎵囧尯绗竴涓潡瀵瑰簲鑺墖瀛樺偍鍣ㄧ殑浣嶇疆锛堟垜鏄繖鏍风悊瑙g殑锛屽洜涓虹0鎵囧尯鐨勮繖涓�兼槸4鑰屼笉鏄�0锛�
+                    int bIndex = mfc.sectorToBlock(1);
+                    //String data1 = "";
+                    for (int j = 0; j < bCount; j++) {
+                        //璇诲彇鏁版嵁
+                        byte[] data = null;
+                        try {
+                            data = mfc.readBlock(bIndex);
+                            bIndex++;
+                            list.add(data);
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                    }
+                    flag = true;
+                }
+
+                if (flag) {
+                    managerToUserCard = ManagerToUserCard.getBean(list);
+                    return managerToUserCard;
+                }
+            } catch (IOException e) {
+                e.printStackTrace();
+            } catch (Exception e) {
+                e.printStackTrace();
+            } finally {
+                try {
+                    mfc.close();
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+        return null;
+    }
+
     /**
      * 杩斿洖鐩戝惉绫�
      */

--
Gitblit v1.8.0