From 75f59fa9a615e3584694e820ff83503e8b72ea16 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期五, 14 三月 2025 16:55:31 +0800
Subject: [PATCH] refactor(generallibrary):重构网络请求模块
---
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NfcReadHelper.java | 515 +++-----------------------------------------------------
1 files changed, 35 insertions(+), 480 deletions(-)
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NfcReadHelper.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NfcReadHelper.java
index 10eaebd..8acb2c3 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NfcReadHelper.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NfcReadHelper.java
@@ -2,24 +2,14 @@
import android.app.Activity;
import android.content.Intent;
-import android.nfc.NfcAdapter;
-import android.nfc.Tag;
-import android.nfc.tech.MifareClassic;
-import android.util.Log;
-import com.dayu.baselibrary.tools.HexUtil;
-import com.dayu.baselibrary.utils.BaseCommon;
+import com.dayu.baselibrary.bean.BaseManagerToUserCard;
+import com.dayu.baselibrary.tools.nfc.BaseNfcReadHelper;
+import com.dayu.baselibrary.tools.nfc.NfcReadAdapter;
import com.dayu.qiheonlinelibrary.card.ManagerToUserCard;
import com.dayu.qiheonlinelibrary.card.UserCard;
-import com.dayu.qiheonlinelibrary.utils.CardCommon;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
/**
* @author zx
@@ -27,16 +17,15 @@
* email 1058083107@qq.com
* description nfc璇诲彇宸ュ叿绫�
*/
-public class NfcReadHelper extends BaseNFCHelper {
+public class NfcReadHelper extends QHBaseNFCHelper {
- private Tag tag;
- // private NFCCallback callback;
private static NfcReadHelper helper;
+ private NfcReadAdapter adapter;
public NfcReadHelper(Intent intent, Activity activity) {
super(activity);
- this.tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
+ adapter = new NfcReadAdapter(intent, activity);
}
/**
@@ -58,60 +47,10 @@
* @return
*/
public UserCard getUserCardData() {
- UserCard userCard = null;
- Map<String, List<byte[]>> map = new HashMap<>();
- MifareClassic mfc = MifareClassic.get(tag);
- if (null != mfc) {
- try {
- //閾炬帴NFC
- mfc.connect();
- //鑾峰彇鎵囧尯鏁伴噺
- int count = mfc.getSectorCount();
- //瀛樺偍绌洪棿
- int size = mfc.getSize();
- //鐢ㄤ簬鍒ゆ柇鏃跺�欐湁鍐呭璇诲彇鍑烘潵
- boolean flag = false;
- List<byte[]> list = new ArrayList<>();
- //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級
- boolean isOpen = mfc.authenticateSectorWithKeyA(1, defauleKey);
- if (!isOpen) {
- isOpen = mfc.authenticateSectorWithKeyA(1, companyKey);
- }
- if (isOpen) {
- //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺
- int bCount = mfc.getBlockCountInSector(1);
- //鑾峰彇鎵囧尯绗竴涓潡瀵瑰簲鑺墖瀛樺偍鍣ㄧ殑浣嶇疆锛堟垜鏄繖鏍风悊瑙g殑锛屽洜涓虹0鎵囧尯鐨勮繖涓�兼槸4鑰屼笉鏄�0锛�
- int bIndex = mfc.sectorToBlock(1);
- //String data1 = "";
- for (int j = 0; j < bCount; j++) {
- //璇诲彇鏁版嵁
- byte[] data = null;
- try {
- data = mfc.readBlock(bIndex);
- bIndex++;
- list.add(data);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- flag = true;
- }
-
- if (flag) {
- userCard = UserCard.getBean(list);
- return userCard;
- }
- } catch (IOException e) {
- e.printStackTrace();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- try {
- mfc.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
+ try {
+ return (UserCard) adapter.getUserCardData(new UserCard());
+ } catch (Exception e) {
+ e.printStackTrace();
}
return null;
}
@@ -122,36 +61,10 @@
* @return
*/
public String getCardNumber() {
- MifareClassic mfc = MifareClassic.get(tag);
- if (null != mfc) {
- try {
- mfc.connect();
- //鑾峰彇褰撳墠鍗″彿
- boolean isOpen = mfc.authenticateSectorWithKeyA(0, defauleKey);
- if (!isOpen) {
- isOpen = mfc.authenticateSectorWithKeyA(0, companyKey);
- }
- 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) {
- return BaseCommon.CARD_TYPE_ERROR1;
- } finally {
- try {
- mfc.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
+ try {
+ return adapter.getCardNumber();
+ } catch (Exception e) {
+ e.printStackTrace();
}
return "";
}
@@ -163,54 +76,10 @@
* @return
*/
public String getCradTypeAndCardNumber() {
-
- MifareClassic mfc = MifareClassic.get(tag);
- if (null != mfc) {
- try {
- mfc.connect();
- StringBuilder strData = new StringBuilder();
- //鑾峰彇褰撳墠鍗″彿
- boolean isOpen = mfc.authenticateSectorWithKeyA(0, defauleKey);
- if (!isOpen) {
- isOpen = mfc.authenticateSectorWithKeyA(0, companyKey);
- }
- 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));
- strData.append(hex);
- strData.append(",");
- Log.i("NFCWreatActivity", "hex===" + hex);
- }
- }
- //鑾峰彇鍗$墖绫诲瀷
- isOpen = mfc.authenticateSectorWithKeyA(1, defauleKey);
- if (!isOpen) {
- isOpen = mfc.authenticateSectorWithKeyA(1, companyKey);
- }
- if (isOpen) {
- int bIndex = mfc.sectorToBlock(1);
- byte[] data = mfc.readBlock(bIndex + 0);
- if (data != null && data.length > 0) {
- String hex = HexUtil.byteToHex(data[0]);
- strData.append(hex);
- Log.i("NFCWreatActivity", "hex===" + hex);
- return strData.toString().toUpperCase();
- }
- } else {
- Log.i("NFCWreatActivity", "isOpen===" + isOpen);
- return BaseCommon.CARD_TYPE_ERROR2;
- }
- } catch (IOException e) {
- return BaseCommon.CARD_TYPE_ERROR1;
- } finally {
- try {
- mfc.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
+ try {
+ return adapter.getCradTypeAndCardNumber();
+ } catch (Exception e) {
+ e.printStackTrace();
}
return "";
}
@@ -220,189 +89,22 @@
*
* @param callback
*/
- public void getAllData(final NFCCallMapback callback) {
- Map<String, List<byte[]>> map = new HashMap<>();
- MifareClassic mfc = MifareClassic.get(tag);
- if (null != mfc) {
- try {
- //閾炬帴NFC
- mfc.connect();
- //鑾峰彇鎵囧尯鏁伴噺
- int count = mfc.getSectorCount();
- //瀛樺偍绌洪棿
- int size = mfc.getSize();
- //鐢ㄤ簬鍒ゆ柇鏃跺�欐湁鍐呭璇诲彇鍑烘潵
- boolean flag = false;
- for (int i = 0; i < count; i++) {
- List<byte[]> list = new ArrayList<>();
- //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級
- boolean isOpen = mfc.authenticateSectorWithKeyA(i, defauleKey);
- if (!isOpen) {
- isOpen = mfc.authenticateSectorWithKeyA(i, companyKey);
- }
- if (isOpen) {
- //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺
- int bCount = mfc.getBlockCountInSector(i);
- //鑾峰彇鎵囧尯绗竴涓潡瀵瑰簲鑺墖瀛樺偍鍣ㄧ殑浣嶇疆锛堟垜鏄繖鏍风悊瑙g殑锛屽洜涓虹0鎵囧尯鐨勮繖涓�兼槸4鑰屼笉鏄�0锛�
- int bIndex = mfc.sectorToBlock(i);
- //String data1 = "";
- for (int j = 0; j < bCount; j++) {
- //璇诲彇鏁版嵁
- byte[] data = null;
- try {
- data = mfc.readBlock(bIndex);
- bIndex++;
- list.add(data);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- flag = true;
- }
- map.put(i + "", list);
- }
- if (flag) {
- callback.callBack(map);
- } else {
- callback.error(CardCommon.ERROR);
- }
- } catch (IOException e) {
- callback.error(CardCommon.ERROR_MOVE);
- e.printStackTrace();
- } catch (Exception e) {
- callback.error(CardCommon.ERROR);
- e.printStackTrace();
- } finally {
- try {
- mfc.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
+ public void getAllData(final BaseNfcReadHelper.NFCCallMapback callback) {
+ try {
+ adapter.getAllData(callback);
+ } catch (Exception e) {
+ e.printStackTrace();
}
}
public List<byte[]> getOnesectorData() {
- MifareClassic mfc = null;
try {
- mfc = MifareClassic.get(tag);
+ return adapter.getOnesectorData();
} catch (Exception e) {
e.printStackTrace();
- }
- List<byte[]> list = new ArrayList<>();
- if (null != mfc) {
- try {
- //閾炬帴NFC
- mfc.connect();
- //鐢ㄤ簬鍒ゆ柇鏃跺�欐湁鍐呭璇诲彇鍑烘潵
- boolean flag = false;
-
- //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級
- boolean isOpen = mfc.authenticateSectorWithKeyA(1, companyKey);
- if (!isOpen) {
- isOpen = mfc.authenticateSectorWithKeyA(1, defauleKey);
- }
- if (isOpen) {
- //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺
- int bCount = mfc.getBlockCountInSector(1);
- //鑾峰彇鎵囧尯绗竴涓潡瀵瑰簲鑺墖瀛樺偍鍣ㄧ殑浣嶇疆锛堟垜鏄繖鏍风悊瑙g殑锛屽洜涓虹0鎵囧尯鐨勮繖涓�兼槸4鑰屼笉鏄�0锛�
- int bIndex = mfc.sectorToBlock(1);
- //String data1 = "";
- for (int j = 0; j < bCount; j++) {
- //璇诲彇鏁版嵁
- byte[] data = null;
- try {
- data = mfc.readBlock(bIndex);
- bIndex++;
- list.add(data);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
-
- } catch (IOException e) {
- e.printStackTrace();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- try {
- mfc.close();
- return list;
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
}
return null;
- }
-
- /**
- * 鑾峰彇1鎵囧尯淇℃伅
- *
- * @param callback
- */
- public void getOneSectorData(NFCCallListback callback) {
-
-
- MifareClassic mfc = null;
- try {
- mfc = MifareClassic.get(tag);
- } catch (Exception e) {
- e.printStackTrace();
- }
- if (null != mfc) {
- try {
- //閾炬帴NFC
- mfc.connect();
- //鐢ㄤ簬鍒ゆ柇鏃跺�欐湁鍐呭璇诲彇鍑烘潵
- boolean flag = false;
- List<byte[]> list = new ArrayList<>();
- //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級
- boolean isOpen = mfc.authenticateSectorWithKeyA(1, companyKey);
- if (!isOpen) {
- isOpen = mfc.authenticateSectorWithKeyA(1, defauleKey);
- }
- if (isOpen) {
- //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺
- int bCount = mfc.getBlockCountInSector(1);
- //鑾峰彇鎵囧尯绗竴涓潡瀵瑰簲鑺墖瀛樺偍鍣ㄧ殑浣嶇疆锛堟垜鏄繖鏍风悊瑙g殑锛屽洜涓虹0鎵囧尯鐨勮繖涓�兼槸4鑰屼笉鏄�0锛�
- int bIndex = mfc.sectorToBlock(1);
- //String data1 = "";
- for (int j = 0; j < bCount; j++) {
- //璇诲彇鏁版嵁
- byte[] data = null;
- try {
- data = mfc.readBlock(bIndex);
- bIndex++;
- list.add(data);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- flag = true;
- }
- if (flag) {
- callback.callBack(list);
- } else {
- callback.error(CardCommon.ERROR);
- }
- } catch (IOException e) {
- callback.error(CardCommon.ERROR_MOVE);
- e.printStackTrace();
- } catch (Exception e) {
- callback.error(CardCommon.ERROR);
- e.printStackTrace();
- } finally {
-
- try {
- mfc.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
}
@@ -413,68 +115,12 @@
* @param b 鍧�
* @param callback
*/
- public void getData(final int a, final int b, final NFCCallByteback callback) {
- new Thread(new Runnable() {
- @Override
- public void run() {
- Map<String, List<String>> map = new HashMap<>();
- MifareClassic mfc = MifareClassic.get(tag);
- if (null != mfc) {
- try {
- mfc.connect();
- int count = mfc.getSectorCount();
- if (a < 0 || a > count - 1) {
- callback.error(CardCommon.ERROR);
- return;
- }
- int bCount = mfc.getBlockCountInSector(a);
- if (b < 0 || b > bCount - 1) {
- callback.error(CardCommon.ERROR);
- return;
- }
-
- int type = mfc.getType();//鑾峰彇TAG鐨勭被鍨�
- String typeS = "";
- switch (type) {
- case MifareClassic.TYPE_CLASSIC:
- typeS = "TYPE_CLASSIC";
- break;
- case MifareClassic.TYPE_PLUS:
- typeS = "TYPE_PLUS";
- break;
- case MifareClassic.TYPE_PRO:
- typeS = "TYPE_PRO";
- break;
- case MifareClassic.TYPE_UNKNOWN:
- typeS = "TYPE_UNKNOWN";
- break;
- }
- boolean isOpen = mfc.authenticateSectorWithKeyA(a, defauleKey);
- if (!isOpen) {
- isOpen = mfc.authenticateSectorWithKeyA(a, companyKey);
- }
- if (isOpen) {
- int bIndex = mfc.sectorToBlock(a);
- byte[] data = mfc.readBlock(bIndex + b);
- callback.callBack(data);
- } else {
- callback.error(CardCommon.ERROR);
- }
- } catch (IOException e) {
- callback.error(CardCommon.ERROR_MOVE);
- e.printStackTrace();
- } catch (Exception e) {
- callback.error(CardCommon.ERROR);
- } finally {
- try {
- mfc.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
- }).start();
+ public void getData(final int a, final int b, final BaseNfcReadHelper.NFCCallByteback callback) {
+ try {
+ adapter.getData(a, b, callback);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
@@ -483,106 +129,15 @@
*
* @return
*/
- public ManagerToUserCard getManagerToUserCardData() {
- ManagerToUserCard managerToUserCard = null;
- Map<String, List<byte[]>> map = new HashMap<>();
- MifareClassic mfc = MifareClassic.get(tag);
- if (null != mfc) {
- try {
- //閾炬帴NFC
- mfc.connect();
- //鑾峰彇鎵囧尯鏁伴噺
- int count = mfc.getSectorCount();
- //瀛樺偍绌洪棿
- int size = mfc.getSize();
- //鐢ㄤ簬鍒ゆ柇鏃跺�欐湁鍐呭璇诲彇鍑烘潵
- boolean flag = false;
- List<byte[]> list = new ArrayList<>();
- //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級
- boolean isOpen = mfc.authenticateSectorWithKeyA(1, defauleKey);
- if (!isOpen) {
- isOpen = mfc.authenticateSectorWithKeyA(1, companyKey);
- }
- if (isOpen) {
- //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺
- int bCount = mfc.getBlockCountInSector(1);
- //鑾峰彇鎵囧尯绗竴涓潡瀵瑰簲鑺墖瀛樺偍鍣ㄧ殑浣嶇疆锛堟垜鏄繖鏍风悊瑙g殑锛屽洜涓虹0鎵囧尯鐨勮繖涓�兼槸4鑰屼笉鏄�0锛�
- int bIndex = mfc.sectorToBlock(1);
- //String data1 = "";
- for (int j = 0; j < bCount; j++) {
- //璇诲彇鏁版嵁
- byte[] data = null;
- try {
- data = mfc.readBlock(bIndex);
- bIndex++;
- list.add(data);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- flag = true;
- }
+ public ManagerToUserCard getManagerToUserCardData(BaseManagerToUserCard baseManagerToUserCard) {
- if (flag) {
- managerToUserCard = ManagerToUserCard.getBean(list);
- return managerToUserCard;
- }
- } catch (IOException e) {
- e.printStackTrace();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- try {
- mfc.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
+ try {
+ return (ManagerToUserCard) adapter.getManagerToUserCardData(baseManagerToUserCard);
+ } catch (Exception e) {
+ e.printStackTrace();
}
return null;
}
- /**
- * 杩斿洖鐩戝惉绫�
- */
- public interface NFCCallMapback {
- /**
- * 杩斿洖璇诲彇nfc鍗$殑鍏ㄩ儴淇℃伅
- *
- * @param data 鍓嶉潰浠h〃鎵囧尯 鍥涗釜鍧楃殑鏁版嵁鐢�#鍙烽殧寮�
- */
- void callBack(Map<String, List<byte[]>> data);
-
-
- void error(int code);
- }
-
- /**
- * 杩斿洖鐩戝惉绫�
- */
- public interface NFCCallListback {
- /**
- * 杩斿洖璇诲彇nfc鍗$殑鍏ㄩ儴淇℃伅
- *
- * @param data 鍓嶉潰浠h〃鎵囧尯 鍥涗釜鍧楃殑鏁版嵁鐢�#鍙烽殧寮�
- */
- void callBack(List<byte[]> data);
-
-
- void error(int code);
- }
-
-
- public interface NFCCallByteback {
- /**
- * 杩斿洖璇诲彇nfc鍗$殑鍏ㄩ儴淇℃伅
- *
- * @param data 鍓嶉潰浠h〃鎵囧尯 鍥涗釜鍧楃殑鏁版嵁鐢�#鍙烽殧寮�
- */
-
- void callBack(byte[] data);
-
- void error(int code);
- }
}
--
Gitblit v1.8.0