From 3502384043c282226c0dbc90a191806e007f1d17 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期三, 15 十一月 2023 16:09:09 +0800
Subject: [PATCH] 添加nfc读取连接中断的处理
---
app/src/main/java/com/dayu/recharge/tools/NfcReadHelper.java | 43 ++++++++-------------
app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java | 12 ++++--
app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java | 6 +-
app/src/main/java/com/dayu/recharge/utils/MyCommon.java | 4 ++
4 files changed, 32 insertions(+), 33 deletions(-)
diff --git a/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java b/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java
index 0fb7a61..2f5427f 100644
--- a/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java
@@ -197,9 +197,9 @@
}
@Override
- public void error() {
+ public void error(int code) {
Message message = new Message();
- message.what = ERROR;
+ message.what = code;
handler.sendMessage(message);
}
});
@@ -322,7 +322,7 @@
}
@Override
- public void error() {
+ public void error(int code) {
Message message = new Message();
message.what = ERROR;
handler.sendMessage(message);
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 cdb7633..61e1b9f 100644
--- a/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java
+++ b/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java
@@ -56,7 +56,7 @@
private static final int CONFIGURATION_POWER_CARD = 9;
private static final int PASS_WORD_CRAD = 10;
- private static final int ERROR = -1;
+
volatile UserCard userCard;
ActivityRedCardBinding redCardBinding;
@@ -151,16 +151,16 @@
}
} else {
- message.what = ERROR;
+ message.what = MyCommon.ERROR;
}
handler.sendMessage(message);
}
@Override
- public void error() {
+ public void error(int code) {
Message message = new Message();
- message.what = ERROR;
+ message.what = code;
handler.sendMessage(message);
}
});
@@ -224,6 +224,10 @@
redCardBinding.readCardTypeTV.setText("褰撳墠涓哄瘑鐮佸崱");
stopAnim();
break;
+ case MyCommon.ERROR_MOVE:
+ stopAnim();
+ ToastUtil.show("杩炴帴涓柇锛岃閲嶆柊璐村悎鍗$墖");
+ break;
default:
ToastUtil.show(ReadCardAcitivy.this, "鍗$墖鏃犳硶璇嗗埆");
stopAnim();
diff --git a/app/src/main/java/com/dayu/recharge/tools/NfcReadHelper.java b/app/src/main/java/com/dayu/recharge/tools/NfcReadHelper.java
index 0ee6259..5e3b08d 100644
--- a/app/src/main/java/com/dayu/recharge/tools/NfcReadHelper.java
+++ b/app/src/main/java/com/dayu/recharge/tools/NfcReadHelper.java
@@ -5,6 +5,8 @@
import android.nfc.Tag;
import android.nfc.tech.MifareClassic;
+import com.dayu.recharge.utils.MyCommon;
+
import java.io.IOException;
import java.util.ArrayList;
@@ -42,22 +44,6 @@
}
return helper;
}
-
- /**
- * 璁剧疆NFC鍗$殑瀵嗙爜
- *
- * @param str
- * @return
- */
-// public NfcReadHelper setPassword(String str) {
-//
-// if (null != str && (str.length() <= 6)) {
-// for (int i = 0; i < str.length(); i++) {
-// bytes[i] = (byte) str.charAt(i);
-// }
-// }
-// return helper;
-// }
/**
* 璇诲彇NFC鍗$殑鍏ㄩ儴淇℃伅
@@ -108,15 +94,18 @@
if (flag) {
callback.callBack(map);
} else {
- callback.error();
+ callback.error(MyCommon.ERROR);
}
+ } catch (IOException e) {
+ callback.error(MyCommon.ERROR_MOVE);
+ e.printStackTrace();
} catch (Exception e) {
- callback.error();
+ callback.error(MyCommon.ERROR);
e.printStackTrace();
} finally {
try {
mfc.close();
- } catch (IOException e) {
+ } catch (Exception e) {
e.printStackTrace();
}
}
@@ -143,12 +132,12 @@
mfc.connect();
int count = mfc.getSectorCount();
if (a < 0 || a > count - 1) {
- callback.error();
+ callback.error(MyCommon.ERROR);
return;
}
int bCount = mfc.getBlockCountInSector(a);
if (b < 0 || b > bCount - 1) {
- callback.error();
+ callback.error(MyCommon.ERROR);
return;
}
@@ -174,11 +163,13 @@
byte[] data = mfc.readBlock(bIndex + b);
callback.callBack(data);
} else {
- callback.error();
+ callback.error(MyCommon.ERROR);
}
- } catch (Exception e) {
- callback.error();
+ } catch (IOException e) {
+ callback.error(MyCommon.ERROR_MOVE);
e.printStackTrace();
+ } catch (Exception e) {
+ callback.error(MyCommon.ERROR);
} finally {
try {
mfc.close();
@@ -203,7 +194,7 @@
void callBack(Map<String, List<byte[]>> data);
- void error();
+ void error(int code);
}
public interface NFCCallByteback {
@@ -215,7 +206,7 @@
void callBack(byte[] data);
- void error();
+ void error(int code);
}
}
diff --git a/app/src/main/java/com/dayu/recharge/utils/MyCommon.java b/app/src/main/java/com/dayu/recharge/utils/MyCommon.java
index 8413e24..70aadb6 100644
--- a/app/src/main/java/com/dayu/recharge/utils/MyCommon.java
+++ b/app/src/main/java/com/dayu/recharge/utils/MyCommon.java
@@ -8,6 +8,10 @@
*/
public class MyCommon {
+ public static final int ERROR = -1;
+ //杩炴帴涓柇 鎻愮ず鐢ㄦ埛閲嶆柊杩炴帴鎴栨彁绀虹敤鎴烽噸鏂伴潬杩戝崱鐗�
+ public static final int ERROR_MOVE = -2;
+
/**
* 鐢ㄦ埛鍒峰崱寮�娉靛墠
*/
--
Gitblit v1.8.0