From f5180b600511d1871635bd364beb5bdd15f6ae88 Mon Sep 17 00:00:00 2001
From: zuojincheng <lf_zuo@163.com>
Date: 星期三, 26 三月 2025 18:05:07 +0800
Subject: [PATCH] feat(nfc): 优化 NFC写卡功能并添加新方法- 在 BaseNfcWriteHelper 中添加了新的 writeData 方法,增加了 isConnect 参数 - 优化了 NativeNfcWriteHelper 中的 writeData 实现,支持选择性连接 NFC - 更新了 NfcWriteAdapter,支持新的 writeData 方法- 修改了 NfcWreatHelper 中的 writeData 方法,使用新的接口 - 优化了 NfcWreatActivity 中的写卡逻辑
---
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/card/ManageCard.java | 78 +++++++++++++++++++++++++++++----------
1 files changed, 58 insertions(+), 20 deletions(-)
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/card/ManageCard.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/card/ManageCard.java
index f1b8fa4..397a2f2 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/card/ManageCard.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/card/ManageCard.java
@@ -1,10 +1,11 @@
package com.dayu.qihealonelibrary.card;
import com.dayu.baselibrary.tools.HexUtil;
-import com.dayu.qihealonelibrary.dao.AppDatabase;
-import com.dayu.qihealonelibrary.utils.MyCommon;
+import com.dayu.qihealonelibrary.dao.QHAloneAppDatabase;
+import com.dayu.qihealonelibrary.utils.CardCommon;
import java.io.Serializable;
+import java.util.List;
/**
* Copyright (C), 2023,
@@ -13,28 +14,64 @@
* Description: 绠$悊鍗� 绗�1鎵囧尯 0鍧�
*/
public class ManageCard extends BaseCard implements Serializable {
- public String cardType = MyCommon.MANAGE_CRAD;//鍗$被鍨�
-// public String cardData = "A0B1C289";//鏍囪瘑鐮�
-
-
- /**
- * M1鍗$殑0鎵囧尯0鍧楅�氬父鐢ㄤ簬瀛樺偍涓�浜涘熀鏈殑鍗$墖淇℃伅
- * 绗�0瀛楄妭锛氬崱鐗囩被鍨嬶紙M1鍗′负0x08锛�
- * 绗�1瀛楄妭锛氬崱鐗囧湴鍧�锛堥�氬父涓�0x00锛�
- * 绗�2-5瀛楄妭锛氬崱鐗囧簭鍒楀彿锛�4瀛楄妭锛�
- * 绗�6-8瀛楄妭锛氬崱鐗囧埗閫犲晢浠g爜锛�3瀛楄妭锛�
- * 绗�9瀛楄妭锛氬崱鐗囩増鏈�
- * 绗�10-15瀛楄妭锛氶鐣欏尯鍩�
- */
- public byte[] userCard; //鐢ㄦ埛鍗″彿
-
+ public String cardType = CardCommon.MANAGE_CRAD;//鍗$被鍨�
public String getCardData() {
return cardData;
}
- public byte[] toZeroByte(AppDatabase appDatabase) {
- setCardData(appDatabase, cardType);
+ /**
+ * M1鍗$殑0鎵囧尯0鍧楅�氬父鐢ㄤ簬瀛樺偍涓�浜涘熀鏈殑鍗$墖淇℃伅
+ * 0-4瀛楄妭鏄崱鍙�
+ */
+ public String userCard; //鐢ㄦ埛鍗″彿
+
+ public byte type;//褰撳墠鐘舵�� 00锛氬厖鍊肩鐞嗘満鍐� 01:鎺у埗鍣ㄥ弽鍐欑殑 褰�01鏃跺皢1鎵囧尯0鍧楀師绠$悊鍗′俊鎭敼鎴愮敤鎴峰崱鍐呭
+
+ public int totalElectric;//鎬荤敤鐢甸噺浣� 搴曚綅鍦ㄥ墠锛岄珮浣嶅湪鍚� 1浣嶅皬鏁扮偣 鍚�1浣嶅皬鏁扮偣鐨勬暣鏁�
+
+ public int getTotalElectric() {
+ return totalElectric;
+ }
+
+ public byte getType() {
+ return type;
+ }
+
+ public void setType(byte type) {
+ this.type = type;
+ }
+
+ public String getUserCard() {
+ return userCard;
+ }
+
+ public void setUserCard(String userCard) {
+ this.userCard = userCard;
+ }
+
+
+ public static ManageCard getBean(List<byte[]> data) {
+
+ if (data != null) {
+ ManageCard manageCard = new ManageCard();
+
+ byte[] zero = data.get(0);
+ byte[] passWordByte = new byte[4];
+ System.arraycopy(zero, 5, passWordByte, 0, passWordByte.length);
+ manageCard.setUserCard(HexUtil.bytesToHex(passWordByte));
+ manageCard.setType(zero[9]);
+ byte[] totalElectricByte = new byte[4];
+ System.arraycopy(zero, 10, totalElectricByte, 0, totalElectricByte.length);
+ manageCard.totalElectric = HexUtil.get16To10LowHightByBytes(totalElectricByte);
+ return manageCard;
+ }
+ return null;
+ }
+
+
+ public byte[] toByte(QHAloneAppDatabase QHAloneAppDatabase) {
+ setCardData(QHAloneAppDatabase, cardType);
Zero zero = new Zero();
return zero.toByte();
}
@@ -47,8 +84,9 @@
byte[] cardDataByte = HexUtil.hexToByteArray(cardData);
System.arraycopy(cardDataByte, 0, data, 1, cardDataByte.length);
+ byte[] userCardByts = HexUtil.hexToByteArray(userCard);
if (userCard != null) {
- System.arraycopy(userCard, 0, data, 5, userCard.length);
+ System.arraycopy(userCardByts, 0, data, 5, userCardByts.length);
}
data[15] = getByteSum(data);
--
Gitblit v1.8.0