From a8751388c9a86ae95714a15279994d8aa426a26d Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期五, 13 六月 2025 14:59:02 +0800 Subject: [PATCH] feat(generallibrary): 优化充值功能并添加水价获取- 在 activity_recharge_detail.xml 中移除了不必要的 bold 样式- 在 EditText 中添加了金额输入限制(数字和小数点)- 在 BaseApplication 中添加了水价信息存储 - 在 MainActivity 中实现了延时获取水价的功能- 优化了 RechargeDetailActivity 中的水价检查和使用逻辑 - 在 README.md 中添加了金额格式化和水价获取的最佳实践指南 --- baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NativeNfcReadHelper.java | 53 ++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 36 insertions(+), 17 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 fd1651e..cb24575 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 @@ -7,6 +7,8 @@ import android.nfc.tech.MifareClassic; import android.util.Log; +import androidx.annotation.NonNull; + import com.dayu.baselibrary.bean.BaseManagerToUserCard; import com.dayu.baselibrary.bean.BaseUserCardCard; import com.dayu.baselibrary.tools.HexUtil; @@ -29,8 +31,6 @@ private Tag tag; // private NFCCallback callback; private static NativeNfcReadHelper helper; - - @Override @@ -435,9 +435,6 @@ } - - - public String getCardNumberNoClose() { if (tag == null) { return ""; @@ -483,13 +480,19 @@ return ""; } + @Override + public String getCradTypeAndCardNumber() { + return getCradTypeAndCardNumber(1); + } + + /** * 鑾峰彇鍗$墖绫诲瀷鍜屽崱鍙� * * @return */ - @Override - public String getCradTypeAndCardNumber() { + + public String getCradTypeAndCardNumber(int sectorIndex) { MifareClassic mfc = MifareClassic.get(tag); if (null != mfc) { @@ -498,10 +501,18 @@ StringBuilder strData = new StringBuilder(); //鑾峰彇褰撳墠鍗″彿 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, listA_PS.get(0))) { isOpen = true; - break; + } else if (mfc.authenticateSectorWithKeyA(0, defauleKey)) { + isOpen = true; } } if (isOpen) { @@ -517,15 +528,23 @@ } } //鑾峰彇鍗$墖绫诲瀷 - for (int i = 0; i < listKeyA.size(); i++) { - if (mfc.authenticateSectorWithKeyA(1, listKeyA.get(i))) { + if (!listKeyA.isEmpty()) { + for (int i = 0; i < listKeyA.size(); i++) { + if (mfc.authenticateSectorWithKeyA(sectorIndex, listKeyA.get(i))) { + isOpen = true; + break; + } + } + } else if (!listA_PS.isEmpty()) { + if (mfc.authenticateSectorWithKeyA(sectorIndex, listA_PS.get(sectorIndex))) { isOpen = true; - break; + } else if (mfc.authenticateSectorWithKeyA(sectorIndex, defauleKey)) { + isOpen = true; } } if (isOpen) { - int bIndex = mfc.sectorToBlock(1); - byte[] data = mfc.readBlock(bIndex + 0); + int bIndex = mfc.sectorToBlock(sectorIndex); + byte[] data = mfc.readBlock(bIndex + sectorIndex); if (data != null && data.length > 0) { String hex = HexUtil.byteToHex(data[0]); strData.append(hex); @@ -675,7 +694,7 @@ return null; } - public boolean changePasword(int a, MifareClassic mfc) { - } + + } -- Gitblit v1.8.0