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
---
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NFCWriteHelper.java | 260 ++++------------------------------------------------
1 files changed, 20 insertions(+), 240 deletions(-)
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NFCWriteHelper.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NFCWriteHelper.java
index 3517fcb..cb10e99 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NFCWriteHelper.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NFCWriteHelper.java
@@ -2,15 +2,10 @@
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.tools.nfc.NfcWriteAdapter;
import com.dayu.qiheonlinelibrary.card.UserCard;
-
-import java.io.IOException;
/**
* @author zx
@@ -18,16 +13,16 @@
* email 1058083107@qq.com
* description
*/
-public class NFCWriteHelper extends BaseNFCHelper {
+public class NFCWriteHelper extends QHBaseNFCHelper {
- private Tag tag;
private static NFCWriteHelper helper;
- private static int PASSWORD_LENTH = 12;
+ private NfcWriteAdapter adapter;
+
public NFCWriteHelper(Intent intent, Activity activity) {
super(activity);
- this.tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
+ adapter = new NfcWriteAdapter(intent, activity);
}
/**
@@ -40,21 +35,7 @@
if (helper == null) {
helper = new NFCWriteHelper(intent, activity);
}
- return helper;
- }
-
- /**
- * 璁剧疆NFC鍗$殑璇诲彇瀵嗙爜
- *
- * @param str
- * @return
- */
- public NFCWriteHelper setReadPassword(String str) {
- if (null != str && (str.length() <= PASSWORD_LENTH)) {
- for (int i = 0; i < str.length(); i++) {
- defauleKey[i] = (byte) str.charAt(i);
- }
- }
+ helper.adapter.setIntent(intent);
return helper;
}
@@ -66,54 +47,10 @@
* @param
*/
public boolean writeUserData(UserCard userCard) {
- if (userCard != null) {
- int a = 1;
- try {
- MifareClassic mfc = MifareClassic.get(tag);
- if (null != mfc) {
- try {
- //杩炴帴NFC
- mfc.connect();
- //楠岃瘉鎵囧尯瀵嗙爜
- boolean isOpen = mfc.authenticateSectorWithKeyA(a, defauleKey);
- if (!isOpen) {
- isOpen = mfc.authenticateSectorWithKeyA(a, companyKey);
- } else {
- //鍐欏崱鏃朵慨鏀规墍鏈夊瘑鐮�
- changePasword(a, mfc);
- }
- if (isOpen) {
- for (int b = 0; b < 3; b++) {
- byte[] data;
- if (b == 0) {
- data = userCard.getZeroBytes();
- } else if (b == 1) {
- data = userCard.getOneBytes();
- } else {
- data = userCard.getTwoBytes();
- }
- int bIndex = mfc.sectorToBlock(a);
- //鍐欏崱
- mfc.writeBlock(bIndex + b, data);
- }
- return true;
- }
- return false;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- } finally {
- try {
- mfc.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
+ try {
+ return adapter.writeUserData(userCard,1);
+ } catch (Exception e) {
+ e.printStackTrace();
}
return false;
}
@@ -128,56 +65,10 @@
* @param
*/
public boolean writeData(byte[] str, int a, int b) {
- Log.i("NFCWreatActivity", "writeData: a=" + a + " b=" + b);
- if (str.length <= 16) {
- try {
- MifareClassic mfc = MifareClassic.get(tag);
- if (null != mfc) {
- try {
- //杩炴帴NFC
- mfc.connect();
- //鑾峰彇鎵囧尯鏁伴噺
- int count = mfc.getSectorCount();
- //濡傛灉浼犺繘鏉ョ殑鎵囧尯澶т簡鎴栬�呭皬浜嗙洿鎺ラ��鍑烘柟娉�
- if (a > count - 1 || a < 0) {
- return false;
- }
- //鑾峰彇鍐欑殑鎵囧尯鐨勫潡鐨勬暟閲�
- int bCount = mfc.getBlockCountInSector(a);
- //濡傛灉杈撳叆鐨勫潡澶т簡鎴栬�呭皬浜嗕篃鏄洿鎺ラ��鍑�
- if (b > bCount - 1 || b < 0) {
- return false;
- }
- //楠岃瘉鎵囧尯瀵嗙爜
- boolean isOpen = mfc.authenticateSectorWithKeyA(a, defauleKey);
- if (!isOpen) {
- isOpen = mfc.authenticateSectorWithKeyA(a, companyKey);
- } else {
- //鍐欏崱鏃朵慨鏀规墍鏈夊瘑鐮�
- changePasword(a, mfc);
- }
- if (isOpen) {
- int bIndex = mfc.sectorToBlock(a);
- //鍐欏崱
- mfc.writeBlock(bIndex + b, str);
- return true;
- }
- return false;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- } finally {
- try {
- mfc.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
+ try {
+ return adapter.writeData(str, a, b);
+ } catch (Exception e) {
+ e.printStackTrace();
}
return false;
}
@@ -190,52 +81,10 @@
* // * @param callback 杩斿洖鐩戝惉
*/
public boolean changePasword(int a, MifareClassic mfc) {
-// MifareClassic mfc = MifareClassic.get(tag);
- byte[] data = new byte[16];
- if (null != mfc) {
- try {
-// mfc.connect();
-// int count = mfc.getSectorCount();
-// boolean isOpen = mfc.authenticateSectorWithKeyA(a, defauleKey);
-// //楠岃瘉鏄惁鏄粯璁ゅ瘑鐮侊紝褰撻粯璁ゅ瘑鐮佹椂淇敼瀵嗙爜
-// if (isOpen) {
- //灏嗗瘑鐮佽浆鎹负keyA
- byte[] dataA = HexUtil.hexToByteArray(companyKeyA);
- for (int i = 0; i < dataA.length; i++) {
- data[i] = dataA[i];
- }
- //杈撳叆鎺у埗浣�
- data[6] = (byte) 0xFF;
- data[7] = (byte) 0x07;
- data[8] = (byte) 0x80;
- data[9] = (byte) 0x69;
- byte[] dataB = HexUtil.hexToByteArray(companyKeyB);
- //灏嗗瘑鐮佽浆鎹负KeyB
- for (int i = 0; i < dataB.length; i++) {
- data[i + 10] = dataB[i];
- }
- int bIndex = mfc.sectorToBlock(a);
- int bCount = mfc.getBlockCountInSector(a);
- //鍐欏埌鎵囧尯鐨勬渶鍚庝竴涓潡
- mfc.writeBlock(bIndex + bCount - 1, data);
-// byte[] dataa = mfc.readBlock(bIndex + bCount - 1);
-// // 淇敼瀵嗙爜 A
-// mfc.writeBlock(mfc.sectorToBlock(a) + 3, dataA);
-// // 淇敼瀵嗙爜 B
-// mfc.writeBlock(mfc.sectorToBlock(a) + 7, dataB);
-// }
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
-// callback.isSusses(false);
- } finally {
-// try {
-// mfc.close();
-// } catch (IOException e) {
-// e.printStackTrace();
-// }
- }
+ try {
+ return adapter.changePasword(a, mfc);
+ } catch (Exception e) {
+ e.printStackTrace();
}
return false;
}
@@ -247,81 +96,12 @@
*/
public boolean initCard() {
try {
- MifareClassic mfc = MifareClassic.get(tag);
- if (null != mfc) {
- try {
- //杩炴帴NFC
- mfc.connect();
- //鑾峰彇鎵囧尯鏁伴噺
- int count = mfc.getSectorCount();
- byte[] data = new byte[16];
- String initData = "FFFFFFFFFFFFFF078069FFFFFFFFFFFF";
- byte[] initDataBytes = HexUtil.hexToByteArray(initData);
- for (int sector = 0; sector < count; sector++) {
- //楠岃瘉鎵囧尯瀵嗙爜
- boolean isOpen = mfc.authenticateSectorWithKeyA(sector, defauleKey);
- if (!isOpen) {
- isOpen = mfc.authenticateSectorWithKeyA(sector, companyKey2);
- if (isOpen){
- mfc.authenticateSectorWithKeyB(sector, companyKey2);
- }
- }
- if (!isOpen) {
- isOpen = mfc.authenticateSectorWithKeyA(sector, companyKey);
- if (isOpen){
- mfc.authenticateSectorWithKeyB(sector, companyKey);
- }
- }
- if (isOpen) {
- //鑾峰彇鍐欑殑鎵囧尯鐨勫潡鐨勬暟閲�
- int blockCount = mfc.getBlockCountInSector(sector);
- int blockIndex = mfc.sectorToBlock(sector);
- for (int block = 0; block < blockCount ; block++) {
- // 璺宠繃绗� 0 鎵囧尯鐨勭 0 鍧�
- if (sector == 0 && block == 0) {
- blockIndex++;
- continue;
- }
-
- if (block < 3) {
- mfc.writeBlock(blockIndex, data);
- } else {
- mfc.writeBlock(blockIndex, initDataBytes);
- }
- //鍐欏崱
-
- blockIndex++;
- }
- }
- }
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- } finally {
- try {
- mfc.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
+ return adapter.initCard();
} catch (Exception e) {
e.printStackTrace();
- return false;
}
return false;
}
- /**
- * 杩斿洖鐩戝惉绫�
- */
- public interface NFCCallback {
- /**
- * 杩斿洖鏄惁鎴愬姛
- *
- * @param flag
- */
- void isSusses(boolean flag);
- }
+
}
--
Gitblit v1.8.0