From 526138394ee77759e98764153b851acfe6c929af Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期一, 11 十二月 2023 16:33:19 +0800
Subject: [PATCH] 添加震动和声音提示

---
 app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java |   46 ++++++++++++++++++++++++++++++----------------
 1 files changed, 30 insertions(+), 16 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 5b04dc2..b3db5ac 100644
--- a/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java
+++ b/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java
@@ -2,6 +2,7 @@
 
 import android.content.Intent;
 import android.nfc.NfcAdapter;
+import android.nfc.Tag;
 import android.os.Bundle;
 import android.os.Message;
 import android.view.LayoutInflater;
@@ -57,7 +58,8 @@
     volatile UserCard userCard;
     ActivityRedCardBinding redCardBinding;
 
-    Intent intent;
+    //    Intent intent;
+    Tag mTag;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -73,7 +75,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);
@@ -91,14 +93,20 @@
         }
     }
 
+    @Override
+    public void physicalCardDoing(Tag tag) {
+        super.physicalCardDoing(tag);
+        mTag = tag;
+        ProgressDialog.show(this);
+
+        readAllData(tag);
+
+    }
 
     @Override
     public void onNewIntent(Intent intent) {
-        this.intent = intent;
-        ProgressDialog.show(this);
-        if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) {
-            readAllData(intent);
-        }
+//        this.intent = intent;
+
         super.onNewIntent(intent);
     }
 
@@ -106,7 +114,7 @@
      * 璇诲彇鍏ㄩ儴鏁版嵁
      */
 
-    public void readAllData(Intent intent) {
+    public void readAllData(Tag intent) {
         NfcReadHelper.getInstence(intent)
                 .getOneSectorData(new NfcReadHelper.NFCCallListback() {
                     @Override
@@ -234,24 +242,30 @@
 
                     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)) {
                             userCard.setBalance(balance);
                             userCard.setState("00");
 
-                            WriteCardUtils.setUser(intent, userCard);
+                            WriteCardUtils.setUser(mTag, userCard);
                             stateText.append("鍚敤");
                         } else if ("01".equals(state)) {
                             userCard.setBalance(balance);
                             userCard.setState("01");
-                            WriteCardUtils.setUser(intent, userCard);
+                            WriteCardUtils.setUser(mTag, userCard);
                             stateText.append("绂佺敤");
                         } else if ("02".equals(state)) {
                             stateText.append("闅跺睘淇℃伅涓嶇");

--
Gitblit v1.8.0