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