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/activity/NFCWreatActivity.java | 148 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 139 insertions(+), 9 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 e765ae1..2f5427f 100644 --- a/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java @@ -11,8 +11,12 @@ import com.dayu.recharge.card.CleanCard; import com.dayu.recharge.card.CleanUserCard; +import com.dayu.recharge.card.ConfigurationPowerCard; +import com.dayu.recharge.card.ConfigureDeviceRegistrationCrad; +import com.dayu.recharge.card.DomainCard; import com.dayu.recharge.card.ManageCard; import com.dayu.recharge.card.RegisteredCard; +import com.dayu.recharge.card.TestCard; import com.dayu.recharge.card.UserCard; import com.dayu.recharge.databinding.ActivityWriteTextBinding; import com.dayu.recharge.dbBean.AdminDataBean; @@ -65,12 +69,18 @@ boolean registeredFlag = false; boolean administrativeCardFlag = false; boolean cleanUserCardFlag = false; - volatile UserCard userCard; - ManageCard manageCard; + boolean domainCrdFlag = false; + + boolean testCardFlag = false; + + boolean configDeviceRegiestFlag = false; + + boolean configPowerFlag = false; + UserCardBean userCardBean; - CleanCard cleanCard; + String morny; AdminDataBean adminData; RechargeBean rechargeBean; @@ -79,7 +89,15 @@ RegisteredCard registeredCard; CleanUserCard cleanUserCard; + volatile UserCard userCard; + ManageCard manageCard; + DomainCard domainCard; + CleanCard cleanCard; + ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad; + TestCard testCard; + + ConfigurationPowerCard configurationPowerCard; //鎵撳嵃 MyApplication baseApp; @@ -128,6 +146,19 @@ if (this.getIntent().hasExtra("cleanUserCard")) { cleanUserCard = (CleanUserCard) this.getIntent().getSerializableExtra("cleanUserCard"); } + if (this.getIntent().hasExtra("domainCard")) { + domainCard = (DomainCard) this.getIntent().getSerializableExtra("domainCard"); + } + if (this.getIntent().hasExtra("testCard")) { + testCard = (TestCard) this.getIntent().getSerializableExtra("testCard"); + } + if (this.getIntent().hasExtra("configureDeviceRegistrationCrad")) { + configureDeviceRegistrationCrad = (ConfigureDeviceRegistrationCrad) this.getIntent().getSerializableExtra("configureDeviceRegistrationCrad"); + } + if (this.getIntent().hasExtra("configurationPowerCard")) { + configurationPowerCard = (ConfigurationPowerCard) this.getIntent().getSerializableExtra("configurationPowerCard"); + } + morny = this.getIntent().getStringExtra("morny"); try { adminData = baseDao.adminDao().findFirst(); @@ -166,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); } }); @@ -182,7 +213,11 @@ private void saveData() { try { startAnim(); - if (userCard != null || cleanCard != null || manageCard != null || registeredCard != null || cleanUserCard != null) { + if (userCard != null || cleanCard != null || manageCard != null + || registeredCard != null || cleanUserCard != null + || domainCard != null || testCard != null + || configureDeviceRegistrationCrad != null + || configurationPowerCard != null) { if (userCard != null) { setUser(intent, userCard); } @@ -198,8 +233,19 @@ if (cleanUserCard != null) { setCleanUserCard(intent, cleanUserCard); } - - if ((userFlag || cleanFlag || manageCardFlag || registeredFlag || administrativeCardFlag)) { + if (domainCard != null) { + setDomainCard(intent, domainCard); + } + if (testCard != null) { + setTestCard(intent, testCard); + } + if (configureDeviceRegistrationCrad != null) { + setConfigDeviceRegiest(intent, configureDeviceRegistrationCrad); + } + if (configurationPowerCard != null) { + setConfigurationPower(intent, configurationPowerCard); + } + if ((configPowerFlag || configDeviceRegiestFlag || testCardFlag || domainCrdFlag || userFlag || cleanFlag || manageCardFlag || registeredFlag || administrativeCardFlag || cleanUserCardFlag)) { try { if (userFlag && userCardBean != null) { baseDao.userCardDao().insert(userCardBean); @@ -276,7 +322,7 @@ } @Override - public void error() { + public void error(int code) { Message message = new Message(); message.what = ERROR; handler.sendMessage(message); @@ -456,12 +502,18 @@ userFlag = flag; } }); + if (!userFlag) { + return; + } NFCWriteHelper.getInstence(intent).writeData(userCard.getOneBytes(), 1, 1, new NFCWriteHelper.NFCCallback() { @Override public void isSusses(boolean flag) { userFlag = flag; } }); + if (!userFlag) { + return; + } NFCWriteHelper.getInstence(intent).writeData(userCard.getTwoBytes(), 1, 2, new NFCWriteHelper.NFCCallback() { @Override public void isSusses(boolean flag) { @@ -485,6 +537,12 @@ }); } + /** + * 鍒犻櫎鍏ㄩ儴鐢ㄦ埛鍗� + * + * @param intent + * @param cleanUserCard + */ private void setCleanUserCard(Intent intent, CleanUserCard cleanUserCard) { NFCWriteHelper.getInstence(intent).writeData(cleanUserCard.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() { @Override @@ -495,6 +553,78 @@ } /** + * 璁剧疆鍩熷悕鍗� + * + * @param intent + * @param domainCard + */ + private void setDomainCard(Intent intent, DomainCard domainCard) { + try { + NFCWriteHelper.getInstence(intent).writeData(domainCard.getZeroByte(), 1, 0, new NFCWriteHelper.NFCCallback() { + @Override + public void isSusses(boolean flag) { + domainCrdFlag = flag; + } + }); + if (!domainCrdFlag) { + return; + } + NFCWriteHelper.getInstence(intent).writeData(domainCard.getOneByte(), 1, 1, new NFCWriteHelper.NFCCallback() { + @Override + public void isSusses(boolean flag) { + domainCrdFlag = flag; + } + }); + if (!domainCrdFlag) { + return; + } + NFCWriteHelper.getInstence(intent).writeData(domainCard.getTwoByte(), 1, 2, new NFCWriteHelper.NFCCallback() { + @Override + public void isSusses(boolean flag) { + domainCrdFlag = flag; + } + }); + } catch (Exception e) { + domainCrdFlag = false; + throw new RuntimeException(e); + } + } + + private void setTestCard(Intent intent, TestCard testCard) { + NFCWriteHelper.getInstence(intent).writeData(testCard.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() { + @Override + public void isSusses(boolean flag) { + testCardFlag = flag; + } + }); + } + + + private void setConfigDeviceRegiest(Intent intent, ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad) { + NFCWriteHelper.getInstence(intent).writeData(configureDeviceRegistrationCrad.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() { + @Override + public void isSusses(boolean flag) { + configDeviceRegiestFlag = flag; + } + }); + } + + private void setConfigurationPower(Intent intent, ConfigurationPowerCard configurationPowerCard) { + try { + NFCWriteHelper.getInstence(intent).writeData(configurationPowerCard.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() { + @Override + public void isSusses(boolean flag) { + configPowerFlag = flag; + } + }); + } catch (Exception e) { + configPowerFlag = false; + throw new RuntimeException(e); + } + } + + + /** * @param initPeasantCode 鍐滄埛娉ㄥ唽缂栧彿 */ private void selectBalance(String initPeasantCode) { -- Gitblit v1.8.0