From 88c82455871cd03e0a0b6f32591f9bee74a2dc34 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期二, 05 三月 2024 14:52:22 +0800
Subject: [PATCH] 1.修改卡标识的bug 2.优化卡结构的代码

---
 app/src/main/java/com/dayu/recharge/tools/NFCWriteHelper.java |   32 ++++++++++++++------------------
 1 files changed, 14 insertions(+), 18 deletions(-)

diff --git a/app/src/main/java/com/dayu/recharge/tools/NFCWriteHelper.java b/app/src/main/java/com/dayu/recharge/tools/NFCWriteHelper.java
index ee9b31a..16a3046 100644
--- a/app/src/main/java/com/dayu/recharge/tools/NFCWriteHelper.java
+++ b/app/src/main/java/com/dayu/recharge/tools/NFCWriteHelper.java
@@ -1,23 +1,13 @@
 package com.dayu.recharge.tools;
 
+import android.app.Activity;
 import android.content.Intent;
 import android.nfc.NfcAdapter;
 import android.nfc.Tag;
 import android.nfc.tech.MifareClassic;
-import android.util.Base64;
 import android.util.Log;
 
 import java.io.IOException;
-import java.nio.charset.StandardCharsets;
-import java.security.InvalidKeyException;
-import java.security.NoSuchAlgorithmException;
-
-import javax.crypto.BadPaddingException;
-import javax.crypto.Cipher;
-import javax.crypto.IllegalBlockSizeException;
-import javax.crypto.NoSuchPaddingException;
-import javax.crypto.SecretKey;
-import javax.crypto.spec.SecretKeySpec;
 
 /**
  * @author zx
@@ -32,9 +22,9 @@
     private static NFCWriteHelper helper;
     private static int PASSWORD_LENTH = 12;
 
-    public NFCWriteHelper(Intent intent) {
+    public NFCWriteHelper(Intent intent, Activity activity) {
+        super(activity);
         this.tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
-
     }
 
     /**
@@ -43,9 +33,9 @@
      * @param intent
      * @return
      */
-    public static NFCWriteHelper getInstence(Intent intent) {
+    public static NFCWriteHelper getInstence(Intent intent, Activity activity) {
         if (helper == null) {
-            helper = new NFCWriteHelper(intent);
+            helper = new NFCWriteHelper(intent, activity);
         }
         return helper;
     }
@@ -131,8 +121,8 @@
     /**
      * 淇敼瀵嗙爜
      *
-     * @param a        涔﹀啓鐨勬墖鍖�
-     *                 //     * @param callback 杩斿洖鐩戝惉
+     * @param a 涔﹀啓鐨勬墖鍖�
+     *          //     * @param callback 杩斿洖鐩戝惉
      */
     public boolean changePasword(int a) {
         MifareClassic mfc = MifareClassic.get(tag);
@@ -143,6 +133,7 @@
 
                 int count = mfc.getSectorCount();
                 boolean isOpen = mfc.authenticateSectorWithKeyA(a, defauleKey);
+
                 //楠岃瘉鏄惁鏄粯璁ゅ瘑鐮侊紝褰撻粯璁ゅ瘑鐮佹椂淇敼瀵嗙爜
                 if (isOpen) {
                     //灏嗗瘑鐮佽浆鎹负keyA
@@ -151,7 +142,7 @@
                         data[i] = dataA[i];
                     }
                     //杈撳叆鎺у埗浣�
-                    data[6] = (byte) 0xff;
+                    data[6] = (byte) 0xFF;
                     data[7] = (byte) 0x07;
                     data[8] = (byte) 0x80;
                     data[9] = (byte) 0x69;
@@ -164,6 +155,11 @@
                     int bCount = mfc.getBlockCountInSector(a);
                     //鍐欏埌鎵囧尯鐨勬渶鍚庝竴涓潡
                     mfc.writeBlock(bIndex + bCount - 1, data);
+//                    byte[] dataa = mfc.readBlock(bIndex + bCount - 1);
+//                    // 淇敼瀵嗙爜 A
+//                    mfc.writeBlock(mfc.sectorToBlock(a) + 3, dataA);
+//                    // 淇敼瀵嗙爜 B
+//                    mfc.writeBlock(mfc.sectorToBlock(a) + 7, dataB);
                 }
                 return true;
             } catch (Exception e) {

--
Gitblit v1.8.0