From e6e85c6fc87ba0688dae074a6aeda58f24ea05e9 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期三, 02 四月 2025 10:02:57 +0800
Subject: [PATCH] feat(generallibrary): 添加卡片列表适配器和搜索结果 Bean
---
baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NativeNfcReadHelper.java | 62 ++++++++++++++++++++++++++++--
1 files changed, 57 insertions(+), 5 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 c7a5200..4c8aa09 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
@@ -32,8 +32,14 @@
public NativeNfcReadHelper(Intent intent, Activity activity) {
+ }
+
+
+ @Override
+ public void setIntent(Intent intent) {
this.tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
}
+
/**
* 鍗曚緥鍒濆鍖�
@@ -45,6 +51,7 @@
if (helper == null) {
helper = new NativeNfcReadHelper(intent, activity);
}
+ helper.setIntent(intent);
return helper;
}
@@ -55,7 +62,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 +125,9 @@
return null;
}
+
@Override
public String getCradType() {
-
MifareClassic mfc = MifareClassic.get(tag);
if (null != mfc) {
try {
@@ -386,15 +393,17 @@
mfc.connect();
//鑾峰彇褰撳墠鍗″彿
boolean isOpen = false;
- if (!listKeyA.isEmpty()){
+ 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))){
+ } else if (!listA_PS.isEmpty()) {
+ if (mfc.authenticateSectorWithKeyA(0, defauleKey)) {
+ isOpen = true;
+ } else if (mfc.authenticateSectorWithKeyA(0, listA_PS.get(0))) {
isOpen = true;
}
}
@@ -424,6 +433,49 @@
return "";
}
+
+ public String getCardNumberNoClose() {
+ 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 "";
+ }
+
/**
* 鑾峰彇鍗$墖绫诲瀷鍜屽崱鍙�
*
--
Gitblit v1.8.0