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