From 8e3719a37a6be0c9e244a0160b5f2f3331ca3122 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期四, 30 十一月 2023 15:11:38 +0800
Subject: [PATCH] 支持虚拟卡读取

---
 app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java |   70 ++++++++++++++++++++--------------
 1 files changed, 41 insertions(+), 29 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 311b862..19c3021 100644
--- a/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java
@@ -1,6 +1,7 @@
 package com.dayu.recharge.activity;
 
 import android.content.Intent;
+import android.nfc.Tag;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
@@ -80,8 +81,8 @@
     String userName;
     AdminDataBean adminData;
     RechargeBean rechargeBean;
-    Intent intent;
-
+    //    Intent intent;
+    Tag mTag;
 
     RegisteredCard registeredCard;
     CleanUserCard cleanUserCard;
@@ -192,7 +193,7 @@
      */
     private void checkHasUser() {
 
-        String cardType = NfcReadHelper.getInstence(intent).getCradType();
+        String cardType = NfcReadHelper.getInstence(mTag).getCradType();
         Log.i("NFCWreatActivity", "cardType=" + cardType);
         if (cardType.equals(MyCommon.USER_CARD_TYPE_1) ||
                 cardType.equals(MyCommon.USER_CARD_TYPE_2) ||
@@ -221,32 +222,32 @@
                     || configurationPowerCard != null) {
                 if (userCard != null && TextUtils.isEmpty(morny)) {
 
-                    userFlag = WriteCardUtils.setUser(intent, userCard);
+                    userFlag = WriteCardUtils.setUser(mTag, userCard);
                 }
                 if (cleanCard != null) {
-                    NFCWriteHelper.getInstence(intent).changePasword(1);
-                    setClean(intent, cleanCard);
+                    NFCWriteHelper.getInstence(mTag).changePasword(1);
+                    setClean(mTag, cleanCard);
                 }
                 if (manageCard != null) {
-                    setmanageCard(intent, manageCard);
+                    setmanageCard(mTag, manageCard);
                 }
                 if (registeredCard != null) {
-                    setRegisteredCard(intent, registeredCard);
+                    setRegisteredCard(mTag, registeredCard);
                 }
                 if (cleanUserCard != null) {
-                    setCleanUserCard(intent, cleanUserCard);
+                    setCleanUserCard(mTag, cleanUserCard);
                 }
                 if (domainCard != null) {
-                    setDomainCard(intent, domainCard);
+                    setDomainCard(mTag, domainCard);
                 }
                 if (testCard != null) {
-                    setTestCard(intent, testCard);
+                    setTestCard(mTag, testCard);
                 }
                 if (configureDeviceRegistrationCrad != null) {
-                    setConfigDeviceRegiest(intent, configureDeviceRegistrationCrad);
+                    setConfigDeviceRegiest(mTag, configureDeviceRegistrationCrad);
                 }
                 if (configurationPowerCard != null) {
-                    setConfigurationPower(intent, configurationPowerCard);
+                    setConfigurationPower(mTag, configurationPowerCard);
                 }
                 if ((configPowerFlag || configDeviceRegiestFlag || testCardFlag || domainCrdFlag || userFlag || cleanFlag || manageCardFlag || registeredFlag || administrativeCardFlag || cleanUserCardFlag)) {
                     try {
@@ -290,11 +291,12 @@
         }
     }
 
+
     @Override
-    public void onNewIntent(Intent intent) {
-        super.onNewIntent(intent);
+    public void physicalCardDoing(Tag tag) {
+        super.physicalCardDoing(tag);
+        mTag = tag;
         try {
-            this.intent = intent;
             startAnim();
             Log.i("NFCWreatActivity", "isUser:" + isUser);
             if (isUser) {
@@ -313,6 +315,12 @@
             e.printStackTrace();
             CrashReport.postCatchedException(e);
         }
+    }
+
+    @Override
+    public void onNewIntent(Intent intent) {
+        super.onNewIntent(intent);
+
     }
 
 
@@ -408,7 +416,7 @@
                             userCard.setRechargeTimes(userCard.getRechargeTimes() + 1);
                         } else if ("01".equalsIgnoreCase(state)) {
                             userCard.setState("01");
-                            userFlag = WriteCardUtils.setUser(intent, userCard);
+                            userFlag = WriteCardUtils.setUser(mTag, userCard);
                             NFCWreatActivity.this.finish();
                             TipUtil.show("鍏呭�兼姤鏂囬敊璇�-绂佺敤");
                         } else if ("02".equalsIgnoreCase(state)) {
@@ -444,12 +452,12 @@
 
     //寰�鍗″唴鍐欏厖鍊煎悗鐨勬暟鎹�
     private void rechargeWrratCard() {
-        UserCard userCardold = NfcReadHelper.getInstence(intent).getUserCardData();
+        UserCard userCardold = NfcReadHelper.getInstence(mTag).getUserCardData();
         if (userCardold != null) {
             //鍒ゆ柇鏄惁鍏呭�肩殑鏄竴涓崱
             if (userCard.getInitPeasantCode().equals(userCardold.getInitPeasantCode())) {
                 userCard.setState("00");
-                userFlag = WriteCardUtils.setUser(intent, userCard);
+                userFlag = WriteCardUtils.setUser(mTag, userCard);
                 //   鎵撳嵃鐩稿叧
                 if (userFlag) {
                     setPrinterData(rechargeBean);
@@ -465,7 +473,7 @@
         }
     }
 
-    private void setmanageCard(Intent intent, final ManageCard manageCard) {
+    private void setmanageCard(Tag intent, final ManageCard manageCard) {
         manageCardFlag = NFCWriteHelper.getInstence(intent).writeData(manageCard.toZeroByte(), 1, 0);
     }
 
@@ -475,7 +483,7 @@
      * @param intent
      * @param clearOrInitCard
      */
-    private void setClean(Intent intent, final CleanCard clearOrInitCard) {
+    private void setClean(Tag intent, final CleanCard clearOrInitCard) {
         cleanFlag = NFCWriteHelper.getInstence(intent).writeData(clearOrInitCard.toByte(), 1, 0);
     }
 
@@ -486,7 +494,7 @@
      * @param intent
      * @param registeredCard
      */
-    private void setRegisteredCard(Intent intent, RegisteredCard registeredCard) {
+    private void setRegisteredCard(Tag intent, RegisteredCard registeredCard) {
         registeredFlag = NFCWriteHelper.getInstence(intent).writeData(registeredCard.toByte(), 1, 0);
     }
 
@@ -496,7 +504,7 @@
      * @param intent
      * @param cleanUserCard
      */
-    private void setCleanUserCard(Intent intent, CleanUserCard cleanUserCard) {
+    private void setCleanUserCard(Tag intent, CleanUserCard cleanUserCard) {
         cleanUserCardFlag = NFCWriteHelper.getInstence(intent).writeData(cleanUserCard.toByte(), 1, 0);
     }
 
@@ -506,7 +514,7 @@
      * @param intent
      * @param domainCard
      */
-    private void setDomainCard(Intent intent, DomainCard domainCard) {
+    private void setDomainCard(Tag intent, DomainCard domainCard) {
         try {
             domainCrdFlag = NFCWriteHelper.getInstence(intent).writeData(domainCard.getZeroByte(), 1, 0);
             if (!domainCrdFlag) {
@@ -523,16 +531,16 @@
         }
     }
 
-    private void setTestCard(Intent intent, TestCard testCard) {
+    private void setTestCard(Tag intent, TestCard testCard) {
         testCardFlag = NFCWriteHelper.getInstence(intent).writeData(testCard.toByte(), 1, 0);
     }
 
 
-    private void setConfigDeviceRegiest(Intent intent, ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad) {
+    private void setConfigDeviceRegiest(Tag intent, ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad) {
         configDeviceRegiestFlag = NFCWriteHelper.getInstence(intent).writeData(configureDeviceRegistrationCrad.toByte(), 1, 0);
     }
 
-    private void setConfigurationPower(Intent intent, ConfigurationPowerCard configurationPowerCard) {
+    private void setConfigurationPower(Tag intent, ConfigurationPowerCard configurationPowerCard) {
         try {
             configPowerFlag = NFCWriteHelper.getInstence(intent).writeData(configurationPowerCard.toByte(), 1, 0);
         } catch (Exception e) {
@@ -611,7 +619,7 @@
                                 userCard.setBalance(balance);
                                 userCard.setState("00");
                                 //琛ュ崱閫昏緫
-                                userFlag = WriteCardUtils.setUser(intent, userCard);
+                                userFlag = WriteCardUtils.setUser(mTag, userCard);
                                 if (userFlag) {
                                     TipUtil.show(NFCWreatActivity.this, "琛ュ崱鎴愬姛", new TipUtil.TipListener() {
                                         @Override
@@ -625,7 +633,7 @@
                                 stateText.append("绂佺敤");
                                 userCard.setState("01");
                                 userCard.setBalance(balance);
-                                userFlag = WriteCardUtils.setUser(intent, userCard);
+                                userFlag = WriteCardUtils.setUser(mTag, userCard);
                                 startDetailActivity(name, stateText.toString());
 
                             } else if ("02".equals(state)) {
@@ -661,4 +669,8 @@
 
     }
 
+    protected void onDestroy() {
+        super.onDestroy();
+        nfcWreatActivity = null;
+    }
 }
\ No newline at end of file

--
Gitblit v1.8.0