From 8b566e47b67d74d1915bc9f2c07204dd1a222197 Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期三, 04 六月 2025 13:44:00 +0800 Subject: [PATCH] feat(generallibrary): 添加按钮和对话框的背景 drawable --- baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NativeNfcReadHelper.java | 82 +++++++++++++++++++++++++++++++++++++--- 1 files changed, 75 insertions(+), 7 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..ef74114 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 @@ -31,9 +31,13 @@ private static NativeNfcReadHelper helper; - public NativeNfcReadHelper(Intent intent, Activity activity) { + + + @Override + public void setIntent(Intent intent) { this.tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); } + /** * 鍗曚緥鍒濆鍖� @@ -43,8 +47,9 @@ */ public static NativeNfcReadHelper getInstence(Intent intent, Activity activity) { if (helper == null) { - helper = new NativeNfcReadHelper(intent, activity); + helper = new NativeNfcReadHelper(); } + helper.setIntent(intent); return helper; } @@ -55,7 +60,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 +123,9 @@ return null; } + @Override public String getCradType() { - MifareClassic mfc = MifareClassic.get(tag); if (null != mfc) { try { @@ -380,18 +385,30 @@ @Override public String getCardNumber() { + if (tag == null) { + return ""; + } MifareClassic mfc = MifareClassic.get(tag); if (null != mfc) { try { 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); @@ -412,6 +429,55 @@ } catch (IOException e) { e.printStackTrace(); } + } + } + return ""; + } + + + + + + public String getCardNumberNoClose() { + if (tag == null) { + return ""; + } + 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 ""; @@ -608,4 +674,6 @@ } return null; } + + } -- Gitblit v1.8.0