From 548dce0bcff06ee7a1795defe8e7789b9d7aad94 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期五, 25 四月 2025 16:52:50 +0800
Subject: [PATCH] refactor(nfc): 重构 NFC 读写助手类并优化相关功能
---
baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NativeNfcWriteHelper.java | 43 ++++++++++++++++++++++++++++++++-----------
1 files changed, 32 insertions(+), 11 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 612e0b6..22349c3 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
@@ -9,6 +9,7 @@
import com.dayu.baselibrary.bean.BaseUserCardCard;
import com.dayu.baselibrary.tools.HexUtil;
+import com.tencent.bugly.crashreport.CrashReport;
import java.io.IOException;
@@ -23,8 +24,6 @@
private static NativeNfcWriteHelper helper;
- public NativeNfcWriteHelper(Intent intent, Activity activity) {
- }
public void setIntent(Intent intent) {
this.tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
@@ -38,7 +37,7 @@
*/
public static NativeNfcWriteHelper getInstence(Intent intent, Activity activity) {
if (helper == null) {
- helper = new NativeNfcWriteHelper(intent, activity);
+ helper = new NativeNfcWriteHelper();
}
helper.setIntent(intent);
return helper;
@@ -125,6 +124,11 @@
@Override
public boolean writeData(byte[] str, int a, int b, NFCCallBack callBack) {
+ return writeData(str, a, b, true, null);
+ }
+
+ @Override
+ public boolean writeData(byte[] str, int a, int b, boolean isConnect, NFCCallBack callBack) {
Log.i("NFCWreatActivity", "writeData: a=" + a + " b=" + b);
if (str.length == 16) {
try {
@@ -132,7 +136,9 @@
if (null != mfc) {
try {
//杩炴帴NFC
- mfc.connect();
+ if (isConnect) {
+ mfc.connect();
+ }
//鑾峰彇鎵囧尯鏁伴噺
int count = mfc.getSectorCount();
//濡傛灉浼犺繘鏉ョ殑鎵囧尯澶т簡鎴栬�呭皬浜嗙洿鎺ラ��鍑烘柟娉�
@@ -165,12 +171,11 @@
}
}
} else if (listA_PS.size() != 0 && listA_PS.size() > a) {
- if (mfc.authenticateSectorWithKeyA(0, listA_PS.get(a))) {
+ if (mfc.authenticateSectorWithKeyA(a, defauleKey)) {
isOpen = true;
- if (listKeyA.get(a).equals(defauleKey)) {
- //褰撳墠涓洪粯璁ょ櫧鍗″瘑鐮佹椂鍐欏崱鏃朵慨鏀瑰瘑鐮�
- changePasword(a, mfc);
- }
+
+ } else if (mfc.authenticateSectorWithKeyA(a, listA_PS.get(a))) {
+ isOpen = true;
}
}
if (isOpen) {
@@ -227,11 +232,15 @@
}
} catch (Exception e) {
e.printStackTrace();
- callBack.isSusses(false, a + "鎵囧尯鍐欏崱鎶ラ敊" + e.getMessage());
+ if (callBack != null) {
+ callBack.isSusses(false, a + "鎵囧尯鍐欏崱鎶ラ敊" + e.getMessage());
+ }
return false;
}
} else {
- callBack.isSusses(false, a + "鎵囧尯鍐欏崱鎶ラ敊锛宐yte鏁扮粍澶у皬涓嶄负16");
+ if (callBack != null) {
+ callBack.isSusses(false, a + "鎵囧尯鍐欏崱鎶ラ敊锛宐yte鏁扮粍澶у皬涓嶄负16");
+ }
}
return false;
}
@@ -277,6 +286,18 @@
return false;
}
+
+ public boolean changePasword(int a,byte[] passWord, MifareClassic mfc) {
+ try {
+
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ CrashReport.postCatchedException(e);
+ }
+ return false;
+ }
+
/**
* 鍒濆鍖栧崱
*
--
Gitblit v1.8.0