From d09bdcac6830afaad6e277fb558c16d2aa6187a7 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期四, 14 十二月 2023 11:13:21 +0800
Subject: [PATCH] 卡标识码列表功能相关,可分辨设置不同类型卡标识码
---
app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java | 169 +++++++++++++++++++++----------------------------------
1 files changed, 65 insertions(+), 104 deletions(-)
diff --git a/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java b/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java
index d7f58d0..964df1c 100644
--- a/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java
+++ b/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java
@@ -3,11 +3,9 @@
import android.content.Intent;
import android.nfc.NfcAdapter;
import android.os.Bundle;
-import android.os.Handler;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
-
import com.dayu.recharge.card.ConfigurationPowerCard;
import com.dayu.recharge.card.DomainCard;
@@ -75,7 +73,7 @@
redCardBinding.redRemainderBlance.setText("鍓╀綑閲戦锛�" + MornyUtil.changeF2Y(blance) + "鍏�");
redCardBinding.redStatu.setText("鍗$姸鎬侊細" + statu);
if (userCard != null) {
- redCardBinding.redInitCode.setText("鐢ㄦ埛娉ㄥ唽缂栧彿锛�" + userCard.getInitPeasantCode());
+ redCardBinding.redInitCode.setText( userCard.getInitPeasantCode());
Calendar calendar = userCard.getRechargeDate();
if (calendar != null) {
int year = calendar.get(Calendar.YEAR);
@@ -96,12 +94,12 @@
@Override
public void onNewIntent(Intent intent) {
- super.onNewIntent(intent);
this.intent = intent;
ProgressDialog.show(this);
if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) {
readAllData(intent);
}
+ super.onNewIntent(intent);
}
/**
@@ -110,136 +108,93 @@
public void readAllData(Intent intent) {
NfcReadHelper.getInstence(intent)
- .getAllData(new NfcReadHelper.NFCCallListback() {
+ .getOneSectorData(new NfcReadHelper.NFCCallListback() {
@Override
- public void callBack(Map<String, List<byte[]>> data) {
- Message message = new Message();
+ public void callBack(List<byte[]> data) {
//鑾峰彇1鎵囧尯鏁版嵁
- List<byte[]> oneSector = data.get("1");
- if (oneSector != null && oneSector.size() > 0) {
- byte cardType = oneSector.get(0)[0];
+ if (data != null && data.size() > 0) {
+ byte cardType = data.get(0)[0];
String cardTypeStr = HexUtil.byteToHex(cardType);
switch (cardTypeStr) {
case MyCommon.USER_CARD_TYPE_1:
case MyCommon.USER_CARD_TYPE_2:
case MyCommon.USER_CARD_TYPE_3:
- userCard = UserCard.getBean(oneSector);
- message.what = USER_CRAD;
+ userCard = UserCard.getBean(data);
+ selectBalance(userCard.getInitPeasantCode());
break;
case MyCommon.MANAGE_CRAD:
- message.what = MANAGE_CRAD;
+ viweGone(false);
+ redCardBinding.readCardTypeTV.setText("褰撳墠涓虹鐞嗗崱");
+ stopAnim();
break;
case MyCommon.CLEAN_CARD_TYPE:
- message.what = CLEAN_CARD;
+ viweGone(false);
+ redCardBinding.readCardTypeTV.setText("褰撳墠涓烘竻闆跺崱");
+ stopAnim();
break;
case MyCommon.REGISTERED_CARD_TYPE:
- message.what = REGISTERED_CARD;
+ viweGone(false);
+ redCardBinding.readCardTypeTV.setText("褰撳墠涓洪噸鏂版敞鍐岃澶囧崱");
+ stopAnim();
+
break;
case MyCommon.CLEAN_ALL_USER_CARD_TYPE:
- message.what = CLEAN_ALL_USER;
+ viweGone(false);
+ redCardBinding.readCardTypeTV.setText("褰撳墠涓哄垹闄ゅ叏閮ㄧ敤鎴峰崱");
+ stopAnim();
break;
case MyCommon.DOMAIN_CARD_TYPE:
- message.what = DOMAIN_CARD;
- message.obj = oneSector;
+ viweGone(false);
+ redCardBinding.readCardTypeTV.setText("褰撳墠涓鸿缃煙鍚嶅崱");
+ DomainCard domainCard = DomainCard.toBean(data);
+ redCardBinding.readCardDataTV.setText("搴忓彿锛�" + domainCard.getDomainNumber() + "\n" + "鍩熷悕锛�" + domainCard.getDomainName() + "\n" + "绔彛鍙凤細" + domainCard.getPort());
+ stopAnim();
break;
case MyCommon.TEST_CARD_TYPE:
- message.what = TEST_CARD;
+ viweGone(false);
+ redCardBinding.readCardTypeTV.setText("褰撳墠涓烘祴璇曞崱");
+ stopAnim();
break;
case MyCommon.CONFIGURATION_CARD_TYPE:
- message.what = CONFIGURATION_CARD;
+ viweGone(false);
+ redCardBinding.readCardTypeTV.setText("褰撳墠涓洪厤缃澶囨敞鍐屼俊鎭崱");
+ stopAnim();
break;
case MyCommon.CONFIGURATION_POWER_CARD_TYPE:
- message.what = CONFIGURATION_POWER_CARD;
- message.obj = oneSector.get(0);
+ viweGone(false);
+ redCardBinding.readCardTypeTV.setText("褰撳墠閰嶇疆姘存车鍔熺巼鍗�");
+ ConfigurationPowerCard powerCard = ConfigurationPowerCard.toBean(data.get(0));
+ redCardBinding.readCardDataTV.setText(powerCard.getPower());
+ stopAnim();
+ break;
+ default:
+ TipUtil.show(ReadCardAcitivy.this, "鍗$墖鏃犳硶璇嗗埆");
+ stopAnim();
break;
}
} else {
- message.what = MyCommon.ERROR;
+ TipUtil.show(ReadCardAcitivy.this, "鍗$墖鏃犳硶璇嗗埆");
+ stopAnim();
}
- handler.sendMessage(message);
- }
+ }
@Override
public void error(int code) {
- Message message = new Message();
- message.what = code;
- handler.sendMessage(message);
+ switch (code) {
+ case MyCommon.ERROR_MOVE:
+ stopAnim();
+ TipUtil.show("杩炴帴涓柇锛岃閲嶆柊璐村悎鍗$墖");
+ break;
+ default:
+ stopAnim();
+ TipUtil.show("鍗$墖璇嗗埆閿欒,璇烽噸璇曪紒");
+ }
}
});
}
- Handler handler = new Handler(new Handler.Callback() {
- @Override
- public boolean handleMessage(Message msg) {
- switch (msg.what) {
- case USER_CRAD:
- selectBalance(userCard.getInitPeasantCode());
- break;
- case MANAGE_CRAD:
- viweGone(false);
- redCardBinding.readCardTypeTV.setText("褰撳墠涓虹鐞嗗崱");
- stopAnim();
- break;
- case CLEAN_CARD:
- viweGone(false);
- redCardBinding.readCardTypeTV.setText("褰撳墠涓烘竻闆跺崱");
- stopAnim();
- break;
- case REGISTERED_CARD:
- viweGone(false);
- redCardBinding.readCardTypeTV.setText("褰撳墠涓洪噸鏂版敞鍐岃澶囧崱");
- stopAnim();
- break;
- case CLEAN_ALL_USER:
- viweGone(false);
- redCardBinding.readCardTypeTV.setText("褰撳墠涓哄垹闄ゅ叏閮ㄧ敤鎴峰崱");
- stopAnim();
- break;
- case DOMAIN_CARD:
- viweGone(false);
- redCardBinding.readCardTypeTV.setText("褰撳墠涓鸿缃煙鍚嶅崱");
- List<byte[]> data = (List<byte[]>) msg.obj;
- DomainCard domainCard = DomainCard.toBean(data);
- redCardBinding.readCardDataTV.setText("搴忓彿锛�" + domainCard.getDomainNumber() + "\n" + "鍩熷悕锛�" + domainCard.getDomainName() + "\n" + "绔彛鍙凤細" + domainCard.getPort());
- stopAnim();
- break;
- case TEST_CARD:
- viweGone(false);
- redCardBinding.readCardTypeTV.setText("褰撳墠涓烘祴璇曞崱");
- stopAnim();
- break;
- case CONFIGURATION_CARD:
- viweGone(false);
- redCardBinding.readCardTypeTV.setText("褰撳墠涓洪厤缃澶囨敞鍐屼俊鎭崱");
- stopAnim();
- break;
- case CONFIGURATION_POWER_CARD:
- viweGone(false);
- redCardBinding.readCardTypeTV.setText("褰撳墠閰嶇疆姘存车鍔熺巼鍗�");
- byte[] powerData = (byte[]) msg.obj;
- ConfigurationPowerCard powerCard = ConfigurationPowerCard.toBean(powerData);
- redCardBinding.readCardDataTV.setText(powerCard.getPower());
- stopAnim();
- break;
- case PASS_WORD_CRAD:
- viweGone(false);
- redCardBinding.readCardTypeTV.setText("褰撳墠涓哄瘑鐮佸崱");
- stopAnim();
- break;
- case MyCommon.ERROR_MOVE:
- stopAnim();
- TipUtil.show("杩炴帴涓柇锛岃閲嶆柊璐村悎鍗$墖");
- break;
- default:
- TipUtil.show(ReadCardAcitivy.this, "鍗$墖鏃犳硶璇嗗埆");
- stopAnim();
- break;
- }
- return false;
- }
- });
private void viweGone(boolean isUSerCard) {
redCardBinding.readImgLL.setVisibility(View.GONE);
@@ -279,12 +234,18 @@
try {
stateText = new StringBuffer();
- //閲戦
- byte[] blanceByte = Arrays.copyOfRange(readData.getBodyBytes(), 3, 7);
- int balance = SocketUtil.get16to10LowHigh(blanceByte);
- //濮撳悕
- byte[] nameByte = Arrays.copyOfRange(readData.getBodyBytes(), 7, 19);
- String name = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte));
+ int balance = 0;
+ String name = null;
+ try {
+ //閲戦
+ byte[] blanceByte = Arrays.copyOfRange(readData.getBodyBytes(), 3, 7);
+ balance = SocketUtil.get16to10LowHigh(blanceByte);
+ //濮撳悕
+ byte[] nameByte = Arrays.copyOfRange(readData.getBodyBytes(), 7, 19);
+ name = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte));
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
String state = BcdUtil.bcdToStr(readData.getBodyBytes()[2]); //BCD鐮�00鍚敤 01绂佺敤 02闅跺睘淇℃伅涓嶇 03鏃犳鍗′俊鎭� 04鍏跺畠s
if ("00".equals(state)) {
--
Gitblit v1.8.0