From 88c82455871cd03e0a0b6f32591f9bee74a2dc34 Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期二, 05 三月 2024 14:52:22 +0800 Subject: [PATCH] 1.修改卡标识的bug 2.优化卡结构的代码 --- app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java | 64 ++---- app/src/main/java/com/dayu/recharge/card/BaseCard.java | 21 ++ app/src/main/java/com/dayu/recharge/card/RegisteredCard.java | 13 app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java | 39 ++-- app/src/main/java/com/dayu/recharge/card/PassWordCard.java | 21 + app/src/main/res/layout/activity_identyfying.xml | 5 app/src/main/java/com/dayu/recharge/card/CleanCard.java | 14 app/src/main/java/com/dayu/recharge/card/CleanUserCard.java | 13 app/src/main/java/com/dayu/recharge/activity/SysActivity.java | 137 ++++++-------- app/src/main/java/com/dayu/recharge/card/TestCard.java | 13 app/src/main/java/com/dayu/recharge/card/ManageCard.java | 15 app/src/main/java/com/dayu/recharge/card/UserCard.java | 82 ++------ app/src/main/java/com/dayu/recharge/card/ConfigurationPowerCard.java | 13 app/src/main/java/com/dayu/recharge/card/ConfigureDeviceRegistrationCrad.java | 13 app/src/main/java/com/dayu/recharge/utils/MyCommon.java | 27 +++ app/build.gradle | 3 16 files changed, 237 insertions(+), 256 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 390c27d..ca782cd 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -76,7 +76,8 @@ //鍦板潃閫夋嫨 implementation project(':pickerviewlibrary') implementation project(':easysocket') - implementation 'com.tencent.bugly:crashreport:latest.release' + + implementation 'com.tencent.bugly:crashreport:4.1.9.3' // 澶勭悊鍥剧墖 // implementation (name: 'ocr-library', ext: 'aar') //鏉冮檺鐢宠 diff --git a/app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java b/app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java index 520ed07..0ed8d25 100644 --- a/app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java @@ -3,17 +3,9 @@ import android.os.Bundle; import android.text.TextUtils; import android.view.LayoutInflater; -import android.view.View; -import com.dayu.recharge.card.CleanCard; -import com.dayu.recharge.card.ConfigurationPowerCard; -import com.dayu.recharge.card.ConfigureDeviceRegistrationCrad; -import com.dayu.recharge.card.ManageCard; -import com.dayu.recharge.card.RegisteredCard; -import com.dayu.recharge.card.TestCard; import com.dayu.recharge.databinding.ActivityIdentyfyingBinding; import com.dayu.recharge.dbBean.CardData; -import com.dayu.recharge.dbBean.IdentityBean; import com.dayu.recharge.utils.MyCommon; import com.dayu.recharge.utils.TipUtil; import com.dayu.recharge.view.ChooseView; @@ -45,31 +37,20 @@ super.onCreate(savedInstanceState); binding = ActivityIdentyfyingBinding.inflate(LayoutInflater.from(this)); setContentView(binding.getRoot()); - binding.chooseCardType.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - ChooseView.getIntence(IdentifyingActivity.this, Arrays.asList(nianfen.clone()), new ChooseView.ChooseCallBack() { - @Override - public void onOptionsSelect(int options1) { - chooseData(nianfen[options1]); - binding.chooseCardTypeText.setText(nianfen[options1]); - } - }).show(); + binding.chooseCardType.setOnClickListener(v -> + ChooseView.getIntence(IdentifyingActivity.this, Arrays.asList(nianfen.clone()), options1 -> { + chooseData(nianfen[options1]); + binding.chooseCardTypeText.setText(nianfen[options1]); + }).show()); + + binding.electricOk.setOnClickListener(v -> { + if (TextUtils.isEmpty(cardType)) { + TipUtil.show("璇烽�夋嫨鍗$被鍨�"); + return; } - }); - - - IdentityBean identityBean = baseDao.identityDao().findFirst(); - - binding.electricOk.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (TextUtils.isEmpty(cardType)) { - TipUtil.show("璇烽�夋嫨鍗$被鍨�"); - return; - } - String data = binding.electricOldNumber.getText().toString(); - if (!TextUtils.isEmpty(data)) { + String data = binding.electricNewNum.getText().toString(); + if (!TextUtils.isEmpty(data)) { + if (data.length() % 2 == 0) { if (cardData == null) { cardData = new CardData(); cardData.setCardType(cardType); @@ -78,8 +59,11 @@ baseDao.cardDataDao().insert(cardData); TipUtil.show("淇濆瓨鎴愬姛"); } else { - TipUtil.show("璇疯緭鍏ュ崱鏍囪瘑"); + TipUtil.show("璇疯緭鍏ユ纭殑16杩涘埗瀛楃涓�"); } + + } else { + TipUtil.show("璇疯緭鍏ュ崱鏍囪瘑"); } }); } @@ -94,7 +78,7 @@ if (cardData != null) { setData(cardData); } else { - binding.electricOldNumber.setText(new ManageCard().getCardData()); + binding.electricOldNumber.setText(MyCommon.getDefaultCardData(cardType)); } break; case "娓呴浂鍗�": @@ -103,7 +87,7 @@ if (cardData != null) { setData(cardData); } else { - binding.electricOldNumber.setText(new CleanCard().getCardData()); + binding.electricOldNumber.setText(MyCommon.getDefaultCardData(cardType)); } break; case "閲嶆柊娉ㄥ唽璁惧鍗�": @@ -112,7 +96,7 @@ if (cardData != null) { setData(cardData); } else { - binding.electricOldNumber.setText(new RegisteredCard().getCardData()); + binding.electricOldNumber.setText(MyCommon.getDefaultCardData(cardType)); } break; case "鍒犻櫎鍏ㄩ儴鐢ㄦ埛鍗�": @@ -121,7 +105,7 @@ if (cardData != null) { setData(cardData); } else { - binding.electricOldNumber.setText(new RegisteredCard().getCardData()); + binding.electricOldNumber.setText(MyCommon.getDefaultCardData(cardType)); } break; case "娴嬭瘯鍗�": @@ -130,7 +114,7 @@ if (cardData != null) { setData(cardData); } else { - binding.electricOldNumber.setText(new TestCard().getCardData()); + binding.electricOldNumber.setText(MyCommon.getDefaultCardData(cardType)); } break; case "璁惧淇℃伅鍗�": @@ -139,7 +123,7 @@ if (cardData != null) { setData(cardData); } else { - binding.electricOldNumber.setText(new ConfigureDeviceRegistrationCrad().getCardData()); + binding.electricOldNumber.setText(MyCommon.getDefaultCardData(cardType)); } break; case "姘存车鍔熺巼鍗�": @@ -148,7 +132,7 @@ if (cardData != null) { setData(cardData); } else { - binding.electricOldNumber.setText(new ConfigurationPowerCard().getCardData()); + binding.electricOldNumber.setText(MyCommon.getDefaultCardData(cardType)); } break; } 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 7c5a5f4..9ffd1aa 100644 --- a/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java @@ -1,5 +1,6 @@ package com.dayu.recharge.activity; +import android.annotation.SuppressLint; import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; @@ -70,7 +71,6 @@ boolean configPowerFlag = false; UserCardBean userCardBean; - UserCard olduserCard; String morny; String userName; @@ -120,6 +120,7 @@ } + @SuppressLint("SetTextI18n") private void getData() { try { if (this.getIntent().hasExtra("userCard")) { @@ -168,7 +169,7 @@ userName = this.getIntent().getStringExtra("userName"); binding.cardData.setText("鍏呭�奸噾棰濓細" + morny + "鍏�"); // 鍏呭�奸�昏緫 - recharge(userCard.getInitPeasantCode(), userName, "鍚敤"); + recharge(userCard.getInitPeasantCode(), userName); } try { @@ -249,9 +250,9 @@ //鐢ㄦ埛鍗� startDetailActivity(userCardBean.getUserName(), "鍚敤"); } else if (!TextUtils.isEmpty(morny)) { - TipUtil.show(NFCWreatActivity.this, "鍏呭�兼垚鍔�", () -> NFCWreatActivity.this.finish()); + TipUtil.show(NFCWreatActivity.this, "鍏呭�兼垚鍔�", NFCWreatActivity.this::finish); } else { - TipUtil.show(NFCWreatActivity.this, "鍐欏崱鎴愬姛", () -> NFCWreatActivity.this.finish()); + TipUtil.show(NFCWreatActivity.this, "鍐欏崱鎴愬姛", NFCWreatActivity.this::finish); } } catch (Exception e) { @@ -311,13 +312,13 @@ StringBuffer data = new StringBuffer(); if (rechargeBean != null) { data.append("*****************************" + "\n"); - data.append(getResources().getString(R.string.login_title) + "\n"); - data.append("璁惧搴忓垪鍙凤細" + rechargeBean.getSerial() + "\n"); - data.append("鐢ㄦ埛鍚嶏細" + rechargeBean.getUserName() + "\n"); + data.append(getResources().getString(R.string.login_title)).append("\n"); + data.append("璁惧搴忓垪鍙凤細").append(rechargeBean.getSerial()).append("\n"); + data.append("鐢ㄦ埛鍚嶏細").append(rechargeBean.getUserName()).append("\n"); // data.append("鎴� 鍙凤細" + rechargeBean.getUserNum() + "\n"); - data.append("鍏呭�奸噾棰濓細" + rechargeBean.getMorny() + "鍏�" + "\n"); - data.append("鍗″唴浣欓锛�" + rechargeBean.getBalance() + "鍏�" + "\n"); - data.append("鏃� 鏈燂細" + DateUtil.dateToStamp(rechargeBean.getDate(), DateUtil.type2) + "\n\n"); + data.append("鍏呭�奸噾棰濓細").append(rechargeBean.getMorny()).append("鍏�").append("\n"); + data.append("鍗″唴浣欓锛�").append(rechargeBean.getBalance()).append("鍏�").append("\n"); + data.append("鏃� 鏈燂細").append(DateUtil.dateToStamp(rechargeBean.getDate(), DateUtil.type2)).append("\n\n"); data.append("*****************************"); } @@ -344,7 +345,7 @@ //鍏呭�间笂浼狅紙Socket锛� - private void recharge(String initPeasantCode, String name, String statu) { + private void recharge(String initPeasantCode, String name) { try { RechargeRequestBean rechargeRequestBean = new RechargeRequestBean(); rechargeRequestBean.setControl("01"); @@ -445,13 +446,11 @@ } else { TipUtil.show(NFCWreatActivity.this, "璇诲彇鐨勫崱鍜屽厖鍊肩殑鍗′笉涓�鑷�"); } - } else { - } } private void setmanageCard(Intent intent, final ManageCard manageCard) { - manageCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(manageCard.toZeroByte(), 1, 0); + manageCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(manageCard.toZeroByte(baseDao), 1, 0); } /** @@ -461,7 +460,7 @@ * @param clearOrInitCard */ private void setClean(Intent intent, final CleanCard clearOrInitCard) { - cleanFlag = NFCWriteHelper.getInstence(intent, this).writeData(clearOrInitCard.toByte(), 1, 0); + cleanFlag = NFCWriteHelper.getInstence(intent, this).writeData(clearOrInitCard.toByte(baseDao), 1, 0); } @@ -472,7 +471,7 @@ * @param registeredCard */ private void setRegisteredCard(Intent intent, RegisteredCard registeredCard) { - registeredFlag = NFCWriteHelper.getInstence(intent, this).writeData(registeredCard.toByte(), 1, 0); + registeredFlag = NFCWriteHelper.getInstence(intent, this).writeData(registeredCard.toByte(baseDao), 1, 0); } /** @@ -482,7 +481,7 @@ * @param cleanUserCard */ private void setCleanUserCard(Intent intent, CleanUserCard cleanUserCard) { - cleanUserCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(cleanUserCard.toByte(), 1, 0); + cleanUserCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(cleanUserCard.toByte(baseDao), 1, 0); } /** @@ -509,17 +508,17 @@ } private void setTestCard(Intent intent, TestCard testCard) { - testCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(testCard.toByte(), 1, 0); + testCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(testCard.toByte(baseDao), 1, 0); } private void setConfigDeviceRegiest(Intent intent, ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad) { - configDeviceRegiestFlag = NFCWriteHelper.getInstence(intent, this).writeData(configureDeviceRegistrationCrad.toByte(), 1, 0); + configDeviceRegiestFlag = NFCWriteHelper.getInstence(intent, this).writeData(configureDeviceRegistrationCrad.toByte(baseDao), 1, 0); } private void setConfigurationPower(Intent intent, ConfigurationPowerCard configurationPowerCard) { try { - configPowerFlag = NFCWriteHelper.getInstence(intent, this).writeData(configurationPowerCard.toByte(), 1, 0); + configPowerFlag = NFCWriteHelper.getInstence(intent, this).writeData(configurationPowerCard.toByte(baseDao), 1, 0); } catch (Exception e) { configPowerFlag = false; throw new RuntimeException(e); diff --git a/app/src/main/java/com/dayu/recharge/activity/SysActivity.java b/app/src/main/java/com/dayu/recharge/activity/SysActivity.java index 5bffa64..5fda231 100644 --- a/app/src/main/java/com/dayu/recharge/activity/SysActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/SysActivity.java @@ -3,7 +3,6 @@ import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; -import android.view.View; import com.dayu.recharge.card.CleanCard; import com.dayu.recharge.card.CleanUserCard; @@ -40,99 +39,77 @@ private void initView() { + //鍒朵綔绠$悊鍗� + adminBinding.adminAdmin.setOnClickListener(v -> { + Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class); + ManageCard manageCard = new ManageCard(); - adminBinding.adminAdmin.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class); - ManageCard manageCard = new ManageCard(); - intent.putExtra("manageCard", manageCard); - startActivity(intent); - } + intent.putExtra("manageCard", manageCard); + startActivity(intent); }); //鍒朵綔娓呴浂鍗� - adminBinding.adminCleanZero.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class); - CleanCard cleanCard = new CleanCard(); - intent.putExtra("cleanCard", cleanCard); - startActivity(intent); - } + adminBinding.adminCleanZero.setOnClickListener(v -> { + Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class); + CleanCard cleanCard = new CleanCard(); + intent.putExtra("cleanCard", cleanCard); + startActivity(intent); }); - adminBinding.adminRegistered.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class); - RegisteredCard registeredCard = new RegisteredCard(); - intent.putExtra("registeredCard", registeredCard); - startActivity(intent); - } + adminBinding.adminRegistered.setOnClickListener(v -> { + Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class); + RegisteredCard registeredCard = new RegisteredCard(); + intent.putExtra("registeredCard", registeredCard); + startActivity(intent); }); //鍒犻櫎鍏ㄩ儴鐢ㄦ埛 - adminBinding.adminCleanUser.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class); - CleanUserCard cleanUserCard = new CleanUserCard(); - intent.putExtra("cleanUserCard", cleanUserCard); - startActivity(intent); - } + adminBinding.adminCleanUser.setOnClickListener(v -> { + Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class); + CleanUserCard cleanUserCard = new CleanUserCard(); + intent.putExtra("cleanUserCard", cleanUserCard); + startActivity(intent); }); // 璁剧疆鍩熷悕鍗� - adminBinding.adminDomain.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class); - DomainBean domainBean = baseDao.domainPortDao().findFirst(); - DomainCard domainCard = new DomainCard(); - if (domainBean != null) { - domainCard.setDomainNumber(domainBean.getDomainNumber()); - domainCard.setDomainName(domainBean.getDomain()); - domainCard.setPort(domainBean.getPort()); - } else { - domainCard.setDomainNumber("1"); - domainCard.setDomainName("dayuyanjiuyuan.top"); - domainCard.setPort(8888); - } - intent.putExtra("domainCard", domainCard); - startActivity(intent); + adminBinding.adminDomain.setOnClickListener(v -> { + Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class); + DomainBean domainBean = baseDao.domainPortDao().findFirst(); + DomainCard domainCard = new DomainCard(); + if (domainBean != null) { + domainCard.setDomainNumber(domainBean.getDomainNumber()); + domainCard.setDomainName(domainBean.getDomain()); + domainCard.setPort(domainBean.getPort()); + } else { + domainCard.setDomainNumber("1"); + domainCard.setDomainName("dayuyanjiuyuan.top"); + domainCard.setPort(8888); } + intent.putExtra("domainCard", domainCard); + startActivity(intent); }); - adminBinding.adminTest.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class); - TestCard testCard = new TestCard(); - intent.putExtra("testCard", testCard); - startActivity(intent); - } + adminBinding.adminTest.setOnClickListener(v -> { + Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class); + TestCard testCard = new TestCard(); + intent.putExtra("testCard", testCard); + startActivity(intent); }); - adminBinding.adminConfigDeviceRegistration.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class); - ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad = new ConfigureDeviceRegistrationCrad(); - intent.putExtra("configureDeviceRegistrationCrad", configureDeviceRegistrationCrad); - startActivity(intent); - } + adminBinding.adminConfigDeviceRegistration.setOnClickListener(v -> { + Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class); + ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad = new ConfigureDeviceRegistrationCrad(); + intent.putExtra("configureDeviceRegistrationCrad", configureDeviceRegistrationCrad); + startActivity(intent); }); - adminBinding.adminConfigPower.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - PowerBean powerBean = baseDao.powerDao().findFirst(); - if (powerBean != null) { - Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class); - ConfigurationPowerCard configurationPowerCard = new ConfigurationPowerCard(); - configurationPowerCard.setPower(powerBean.getPower()); - intent.putExtra("configurationPowerCard", configurationPowerCard); - startActivity(intent); - } else { - TipUtil.show("璇峰厛璁剧疆姘存车鍔熺巼"); - } - + //璁剧疆姘存车鍔熺巼 + adminBinding.adminConfigPower.setOnClickListener(v -> { + PowerBean powerBean = baseDao.powerDao().findFirst(); + if (powerBean != null) { + Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class); + ConfigurationPowerCard configurationPowerCard = new ConfigurationPowerCard(); + configurationPowerCard.setPower(powerBean.getPower()); + intent.putExtra("configurationPowerCard", configurationPowerCard); + startActivity(intent); + } else { + TipUtil.show("璇峰厛璁剧疆姘存车鍔熺巼"); } + }); } diff --git a/app/src/main/java/com/dayu/recharge/card/BaseCard.java b/app/src/main/java/com/dayu/recharge/card/BaseCard.java index c7b4357..bf4b1e2 100644 --- a/app/src/main/java/com/dayu/recharge/card/BaseCard.java +++ b/app/src/main/java/com/dayu/recharge/card/BaseCard.java @@ -1,6 +1,10 @@ package com.dayu.recharge.card; +import com.dayu.recharge.dao.AppDatabase; +import com.dayu.recharge.dbBean.CardData; import com.dayu.recharge.tools.HexUtil; +import com.dayu.recharge.utils.MyCommon; +import com.tencent.bugly.crashreport.CrashReport; import java.io.Serializable; @@ -11,11 +15,26 @@ * Description:鎵�鏈夊崱缁撴瀯鐨勭埗绫� */ public class BaseCard implements Serializable { + public String cardData;//鏍囪瘑鐮� + + public void setCardData(AppDatabase baseDao, String cardType) { + try { + CardData cardDataBean = baseDao.cardDataDao().findFirst(cardType); + if (cardDataBean != null) { + cardData = cardDataBean.getCardIdentifying(); + } else { + cardData=MyCommon.getDefaultCardData(cardType); + } + } catch (Exception e) { + CrashReport.postCatchedException(e); + } + } + /** * 鍓�15涓瓧鑺傜畻鏈疮鍔犲拰 涓嶅惈杩涗綅 * - * @param data + * @param data 婧愭暟鎹� * @return 16杩涘埗 */ public byte getByteSum(byte[] data) { diff --git a/app/src/main/java/com/dayu/recharge/card/CleanCard.java b/app/src/main/java/com/dayu/recharge/card/CleanCard.java index 2a8ac77..e433e86 100644 --- a/app/src/main/java/com/dayu/recharge/card/CleanCard.java +++ b/app/src/main/java/com/dayu/recharge/card/CleanCard.java @@ -1,5 +1,6 @@ package com.dayu.recharge.card; +import com.dayu.recharge.dao.AppDatabase; import com.dayu.recharge.tools.HexUtil; import com.dayu.recharge.utils.MyCommon; @@ -11,29 +12,26 @@ * Date: 2023-11-08 10:57 * Description:娓呴浂鍗� */ -public class CleanCard implements Serializable { +public class CleanCard extends BaseCard implements Serializable { public String cardType = MyCommon.CLEAN_CARD_TYPE;//鍗$被鍨� - public String cardData = "3668F7A30119";//鏍囪瘑鐮� public String getCardData() { return cardData; } - - public byte[] toByte() { + public byte[] toByte(AppDatabase appDatabase) { + setCardData(appDatabase, cardType); Zero zero = new Zero(); return zero.toByte(); } - public class Zero extends BaseCard { + public class Zero { public byte[] toByte() { byte[] data = new byte[16]; data[0] = HexUtil.hexToByte(cardType); byte[] cardDatas = HexUtil.hexToByteArray(cardData); - for (int i = 0; i < 6; i++) { - data[i + 1] = cardDatas[i]; - } + System.arraycopy(cardDatas, 0, data, 1, cardDatas.length); data[15] = getByteSum(data); return data; } diff --git a/app/src/main/java/com/dayu/recharge/card/CleanUserCard.java b/app/src/main/java/com/dayu/recharge/card/CleanUserCard.java index 3135f07..5165024 100644 --- a/app/src/main/java/com/dayu/recharge/card/CleanUserCard.java +++ b/app/src/main/java/com/dayu/recharge/card/CleanUserCard.java @@ -1,5 +1,6 @@ package com.dayu.recharge.card; +import com.dayu.recharge.dao.AppDatabase; import com.dayu.recharge.tools.HexUtil; import com.dayu.recharge.utils.MyCommon; @@ -11,23 +12,21 @@ * Date: 2023-11-08 11:39 * Description:鍒犻櫎鍏ㄩ儴鐢ㄦ埛鍗� */ -public class CleanUserCard implements Serializable { +public class CleanUserCard extends BaseCard implements Serializable { public String cardType = MyCommon.CLEAN_ALL_USER_CARD_TYPE;//鍗$被鍨� - public String cardData = "A0B1C289";//鏍囪瘑鐮� - public byte[] toByte() { + public byte[] toByte(AppDatabase appDatabase) { + setCardData(appDatabase, cardType); Zero zero = new Zero(); return zero.toByte(); } - public class Zero extends BaseCard { + public class Zero { public byte[] toByte() { byte[] data = new byte[16]; data[0] = HexUtil.hexToByte(cardType); byte[] cardDatas = HexUtil.hexToByteArray(cardData); - for (int i = 0; i < 4; i++) { - data[i + 1] = cardDatas[i]; - } + System.arraycopy(cardDatas, 0, data, 1, cardDatas.length); data[15] = getByteSum(data); return data; } diff --git a/app/src/main/java/com/dayu/recharge/card/ConfigurationPowerCard.java b/app/src/main/java/com/dayu/recharge/card/ConfigurationPowerCard.java index c727b4c..66b1ccd 100644 --- a/app/src/main/java/com/dayu/recharge/card/ConfigurationPowerCard.java +++ b/app/src/main/java/com/dayu/recharge/card/ConfigurationPowerCard.java @@ -1,5 +1,6 @@ package com.dayu.recharge.card; +import com.dayu.recharge.dao.AppDatabase; import com.dayu.recharge.tools.HexUtil; import com.dayu.recharge.utils.MyCommon; import com.tencent.bugly.crashreport.CrashReport; @@ -15,11 +16,10 @@ * 涓烘柟渚跨幇鍦烘洿鎹㈣澶囨椂閲嶆柊娉ㄥ唽鐨勯棶棰橈紝閰嶇疆璁惧淇℃伅鍗★紝棣栧厛鍒峰崱锛屾妸鍘熻澶囩殑娉ㄥ唽鍙峰拰ID鍙疯鍒板崱鍐咃紝 * 鍚屾椂鍗$姸鎬佸垯00淇敼涓篎F锛屽啀鏂拌澶囦笂鍒锋鍗℃椂锛屾敞鍐屽彿鍜孖D鍙疯嚜鍔ㄥ啓鍒版帶鍒跺櫒鍐咃紝鍙互鐩存帴鍒峰崱浣跨敤 */ -public class ConfigurationPowerCard implements Serializable { +public class ConfigurationPowerCard extends BaseCard implements Serializable { public String cardType = MyCommon.CONFIGURATION_POWER_CARD_TYPE;//鍗$被鍨� - public String cardData = "A0B1C289";//鏍囪瘑鐮� public String getCardData() { return cardData; @@ -49,19 +49,18 @@ } } - public byte[] toByte() { + public byte[] toByte(AppDatabase appDatabase) { + setCardData(appDatabase,cardType); Zero zero = new Zero(); return zero.toByte(); } - public class Zero extends BaseCard { + public class Zero { public byte[] toByte() { byte[] data = new byte[16]; data[0] = HexUtil.hexToByte(cardType); byte[] cardDatas = HexUtil.hexToByteArray(cardData); - for (int i = 0; i < 4; i++) { - data[i + 1] = cardDatas[i]; - } + System.arraycopy(cardDatas, 0, data, 1, cardDatas.length); if (power != null) { float floatPower = Float.parseFloat(power); int intPower = (int) Math.ceil(floatPower); // 灏嗘诞鐐规暟鍚戜笂鍙栨暣骞惰浆鎹负鏁存暟 diff --git a/app/src/main/java/com/dayu/recharge/card/ConfigureDeviceRegistrationCrad.java b/app/src/main/java/com/dayu/recharge/card/ConfigureDeviceRegistrationCrad.java index 796d029..14d4973 100644 --- a/app/src/main/java/com/dayu/recharge/card/ConfigureDeviceRegistrationCrad.java +++ b/app/src/main/java/com/dayu/recharge/card/ConfigureDeviceRegistrationCrad.java @@ -1,5 +1,6 @@ package com.dayu.recharge.card; +import com.dayu.recharge.dao.AppDatabase; import com.dayu.recharge.tools.HexUtil; import com.dayu.recharge.utils.MyCommon; @@ -14,7 +15,7 @@ * <p> * 涓烘柟渚跨幇鍦烘洿鎹㈣澶囨椂閲嶆柊娉ㄥ唽鐨勯棶棰橈紝閰嶇疆璁惧淇℃伅鍗★紝棣栧厛鍒峰崱锛屾妸鍘熻澶囩殑娉ㄥ唽鍙峰拰ID鍙疯鍒板崱鍐咃紝鍚屾椂鍗$姸鎬佸垯00淇敼涓篎F锛屽啀鏂拌澶囦笂鍒锋鍗℃椂锛屾敞鍐屽彿鍜孖D鍙疯嚜鍔ㄥ啓鍒版帶鍒跺櫒鍐咃紝鍙互鐩存帴鍒峰崱浣跨敤 */ -public class ConfigureDeviceRegistrationCrad implements Serializable { +public class ConfigureDeviceRegistrationCrad extends BaseCard implements Serializable { public String cardType = MyCommon.CONFIGURATION_CARD_TYPE;//鍗$被鍨� public String cardData = "A0B1C289";//鏍囪瘑鐮� @@ -22,20 +23,18 @@ return cardData; } - public byte[] toByte() { + public byte[] toByte(AppDatabase appDatabase) { + setCardData(appDatabase, cardType); Zero zero = new Zero(); return zero.toByte(); } - public class Zero extends BaseCard { + public class Zero { public byte[] toByte() { byte[] data = new byte[16]; data[0] = HexUtil.hexToByte(cardType); byte[] cardDatas = HexUtil.hexToByteArray(cardData); - for (int i = 0; i < 4; i++) { - data[i + 1] = cardDatas[i]; - } - + System.arraycopy(cardDatas, 0, data, 1, cardDatas.length); data[15] = getByteSum(data); return data; } diff --git a/app/src/main/java/com/dayu/recharge/card/ManageCard.java b/app/src/main/java/com/dayu/recharge/card/ManageCard.java index 4bea602..00db4ec 100644 --- a/app/src/main/java/com/dayu/recharge/card/ManageCard.java +++ b/app/src/main/java/com/dayu/recharge/card/ManageCard.java @@ -1,5 +1,6 @@ package com.dayu.recharge.card; +import com.dayu.recharge.dao.AppDatabase; import com.dayu.recharge.tools.HexUtil; import com.dayu.recharge.utils.MyCommon; @@ -11,27 +12,27 @@ * Date: 2023-11-08 10:19 * Description: 绠$悊鍗� 绗�1鎵囧尯 0鍧� */ -public class ManageCard implements Serializable { +public class ManageCard extends BaseCard implements Serializable { public String cardType = MyCommon.MANAGE_CRAD;//鍗$被鍨� - public String cardData = "3668F7A30119";//鏍囪瘑鐮� +// public String cardData = "3668F7A30119";//鏍囪瘑鐮� public String getCardData() { return cardData; } - public byte[] toZeroByte() { + + public byte[] toZeroByte(AppDatabase appDatabase) { + setCardData(appDatabase, cardType); Zero zero = new Zero(); return zero.toByte(); } - public class Zero extends BaseCard { + public class Zero { public byte[] toByte() { byte[] data = new byte[16]; data[0] = HexUtil.hexToByte(cardType); byte[] cardDatas = HexUtil.hexToByteArray(cardData); - for (int i = 0; i < 6; i++) { - data[i + 1] = cardDatas[i]; - } + System.arraycopy(cardDatas, 0, data, 1, cardDatas.length); data[15] = getByteSum(data); return data; } diff --git a/app/src/main/java/com/dayu/recharge/card/PassWordCard.java b/app/src/main/java/com/dayu/recharge/card/PassWordCard.java index ff1e78f..a0e15d9 100644 --- a/app/src/main/java/com/dayu/recharge/card/PassWordCard.java +++ b/app/src/main/java/com/dayu/recharge/card/PassWordCard.java @@ -1,7 +1,10 @@ package com.dayu.recharge.card; +import com.dayu.recharge.dao.AppDatabase; import com.dayu.recharge.tools.HexUtil; import com.dayu.recharge.utils.MyCommon; + +import java.io.Serializable; /** * Copyright (C), 2023, @@ -9,19 +12,23 @@ * Date: 2023-11-08 11:22 * Description:瀵嗙爜鍗� */ -public class PassWordCard { +public class PassWordCard extends BaseCard implements Serializable { public String cardType = MyCommon.PASS_WORD_CRAD_TYPE;//鍗$被鍨� - public String cardData = "A0B1C289";//鏍囪瘑鐮� - public class Zero extends BaseCard { - public void toByte() { + public byte[] toByte(AppDatabase appDatabase) { + setCardData(appDatabase, cardType); + PassWordCard.Zero zero = new PassWordCard.Zero(); + return zero.toByte(); + } + + public class Zero { + public byte[] toByte() { byte[] data = new byte[16]; data[0] = HexUtil.hexToByte(cardType); byte[] cardDatas = HexUtil.hexToByteArray(cardData); - for (int i = 0; i < 4; i++) { - data[i + 1] = cardDatas[i]; - } + System.arraycopy(cardDatas, 0, data, 1, cardDatas.length); data[15] = getByteSum(data); + return data; } } diff --git a/app/src/main/java/com/dayu/recharge/card/RegisteredCard.java b/app/src/main/java/com/dayu/recharge/card/RegisteredCard.java index de5c242..2264e99 100644 --- a/app/src/main/java/com/dayu/recharge/card/RegisteredCard.java +++ b/app/src/main/java/com/dayu/recharge/card/RegisteredCard.java @@ -1,5 +1,6 @@ package com.dayu.recharge.card; +import com.dayu.recharge.dao.AppDatabase; import com.dayu.recharge.tools.HexUtil; import com.dayu.recharge.utils.MyCommon; @@ -11,27 +12,25 @@ * Date: 2023-11-08 11:36 * Description:閲嶆柊娉ㄥ唽璁惧鍗★細鐢ㄤ簬鍐欑敤鎴锋敞鍐屽彿 */ -public class RegisteredCard implements Serializable { +public class RegisteredCard extends BaseCard implements Serializable { public String cardType = MyCommon.REGISTERED_CARD_TYPE;//鍗$被鍨� - public String cardData = "A0B1C289";//鏍囪瘑鐮� public String getCardData() { return cardData; } - public byte[] toByte() { + public byte[] toByte(AppDatabase appDatabase) { + setCardData(appDatabase, cardType); Zero zero = new Zero(); return zero.toByte(); } - public class Zero extends BaseCard { + public class Zero { public byte[] toByte() { byte[] data = new byte[16]; data[0] = HexUtil.hexToByte(cardType); byte[] cardDatas = HexUtil.hexToByteArray(cardData); - for (int i = 0; i < 4; i++) { - data[i + 1] = cardDatas[i]; - } + System.arraycopy(cardDatas, 0, data, 1, cardDatas.length); data[15] = getByteSum(data); return data; } diff --git a/app/src/main/java/com/dayu/recharge/card/TestCard.java b/app/src/main/java/com/dayu/recharge/card/TestCard.java index c12f7e2..8f3fa2c 100644 --- a/app/src/main/java/com/dayu/recharge/card/TestCard.java +++ b/app/src/main/java/com/dayu/recharge/card/TestCard.java @@ -1,5 +1,6 @@ package com.dayu.recharge.card; +import com.dayu.recharge.dao.AppDatabase; import com.dayu.recharge.tools.HexUtil; import com.dayu.recharge.utils.MyCommon; @@ -11,27 +12,25 @@ * Date: 2023-11-08 13:23 * Description: 娴嬭瘯鍗� */ -public class TestCard implements Serializable { +public class TestCard extends BaseCard implements Serializable { public String cardType = MyCommon.TEST_CARD_TYPE;//鍗$被鍨� - public String cardData = "A0B1C289";//鏍囪瘑鐮� public String getCardData() { return cardData; } - public byte[] toByte() { + public byte[] toByte(AppDatabase appDatabase) { + setCardData(appDatabase, cardType); Zero zero = new Zero(); return zero.toByte(); } - public class Zero extends BaseCard { + public class Zero { public byte[] toByte() { byte[] data = new byte[16]; data[0] = HexUtil.hexToByte(cardType); byte[] cardDatas = HexUtil.hexToByteArray(cardData); - for (int i = 0; i < 4; i++) { - data[i + 1] = cardDatas[i]; - } + System.arraycopy(cardDatas, 0, data, 1, cardDatas.length); data[15] = getByteSum(data); return data; } diff --git a/app/src/main/java/com/dayu/recharge/card/UserCard.java b/app/src/main/java/com/dayu/recharge/card/UserCard.java index df69beb..93a8656 100644 --- a/app/src/main/java/com/dayu/recharge/card/UserCard.java +++ b/app/src/main/java/com/dayu/recharge/card/UserCard.java @@ -2,7 +2,6 @@ import com.dayu.recharge.tools.BcdUtil; import com.dayu.recharge.tools.HexUtil; -import com.dayu.recharge.utils.MornyUtil; import com.dayu.recharge.utils.MyCommon; import java.io.Serializable; @@ -15,7 +14,7 @@ * Date: 2023-11-07 9:37 * Description: 鐢ㄦ埛鍗$粨鏋� */ -public class UserCard implements Serializable { +public class UserCard extends BaseCard implements Serializable { public String cardType = MyCommon.USER_CARD_TYPE_1;//鍐欏崱鏍囧織 A1鍒峰崱寮�娉靛墠 A8鍒峰崱寮�娉靛悗 A2鍙犲姞鍏呭�� public int rechargeTimes;//鍏呭�兼鏁� @@ -53,7 +52,7 @@ /** * 閫氳繃byte杞琤ean * - * @param data + * @param data 璇诲崱鐨勬暟鎹� */ public static UserCard getBean(List<byte[]> data) { try { @@ -65,29 +64,22 @@ userCard.cardType = HexUtil.byteToHex(zero[0]); userCard.rechargeTimes = HexUtil.get16to10(HexUtil.byteToHex(zero[1])); byte[] swipeNumberBytes = new byte[2]; - swipeNumberBytes[0] = zero[2]; - swipeNumberBytes[1] = zero[3]; + System.arraycopy(zero,2,swipeNumberBytes,0,swipeNumberBytes.length); String swipeNumberHex = HexUtil.bytesToHex(swipeNumberBytes); userCard.swipeNumber = (short) HexUtil.get16to10(swipeNumberHex); byte[] electricityPriceBytes = new byte[4]; - for (int i = 0; i < 4; i++) { - electricityPriceBytes[i] = zero[i + 4]; - } + System.arraycopy(zero,4,electricityPriceBytes,0,electricityPriceBytes.length); + userCard.electricityPrice = HexUtil.hexToFloat(HexUtil.bytesToHex(electricityPriceBytes)); userCard.state = BcdUtil.bcdToStr(zero[8]); byte[] balanceBytes = new byte[4]; - for (int i = 0; i < 4; i++) { - balanceBytes[i] = zero[i + 9]; - } + System.arraycopy(zero,9,balanceBytes,0,balanceBytes.length); + userCard.balance = HexUtil.get16to10LowHigh(HexUtil.bytesToHex(balanceBytes)); byte[] addressCodeBytes = new byte[6]; - addressCodeBytes[0] = zero[13]; - addressCodeBytes[1] = zero[14]; - addressCodeBytes[2] = two[11]; - addressCodeBytes[3] = two[12]; - addressCodeBytes[4] = two[13]; - addressCodeBytes[5] = two[14]; + System.arraycopy(zero,13,addressCodeBytes,0,2); + System.arraycopy(two,11,addressCodeBytes,0,4); userCard.addressCode = BcdUtil.bcdToStr(addressCodeBytes); int year = 0; @@ -122,22 +114,8 @@ Calendar calendar = Calendar.getInstance(); calendar.set(2000 + year, month, day, hour, minute, second); byte[] initPeasantCodeBytes = new byte[16]; - initPeasantCodeBytes[0] = one[10]; - initPeasantCodeBytes[1] = one[11]; - initPeasantCodeBytes[2] = one[12]; - initPeasantCodeBytes[3] = one[13]; - initPeasantCodeBytes[4] = one[14]; - initPeasantCodeBytes[5] = two[0]; - initPeasantCodeBytes[6] = two[1]; - initPeasantCodeBytes[7] = two[2]; - initPeasantCodeBytes[8] = two[3]; - initPeasantCodeBytes[9] = two[4]; - initPeasantCodeBytes[10] = two[5]; - initPeasantCodeBytes[11] = two[6]; - initPeasantCodeBytes[12] = two[7]; - initPeasantCodeBytes[13] = two[8]; - initPeasantCodeBytes[14] = two[9]; - initPeasantCodeBytes[15] = two[10]; + System.arraycopy(one,10,initPeasantCodeBytes,0,5); + System.arraycopy(two,0,initPeasantCodeBytes,0,11); userCard.initPeasantCode = HexUtil.bytesToHex(initPeasantCodeBytes); return userCard; } @@ -157,7 +135,7 @@ /** * 鐢ㄦ埛鍗�0鍧� */ - public class Zero extends BaseCard { + public class Zero { public byte[] toByte() { byte[] data = new byte[16]; data[0] = HexUtil.hexToByte(cardType); @@ -167,25 +145,22 @@ e.printStackTrace(); } byte[] swipeNumbers = HexUtil.hexToByteArray(HexUtil.get10to16(swipeNumber)); - for (int i = 0; i < swipeNumbers.length; i++) { - data[i + 2] = swipeNumbers[i]; - } + + System.arraycopy(swipeNumbers, 0, data, 2, swipeNumbers.length); + byte[] electricityPrices = HexUtil.hexToByteArray(HexUtil.folatToHexString(electricityPrice)); - for (int i = 0; i < electricityPrices.length; i++) { - data[i + 4] = electricityPrices[i]; - } + + System.arraycopy(electricityPrices, 0, data, 4, electricityPrices.length); try { data[8] = BcdUtil.strToBcd(state)[0]; } catch (Exception e) { e.printStackTrace(); } byte[] balances = HexUtil.hexToByteArray(HexUtil.get10to16LowHigh(balance, 8)); - for (int i = 0; i < balances.length; i++) { - data[i + 9] = balances[i]; - } + + System.arraycopy(balances, 0, data, 9, balances.length); byte[] addresscodes = BcdUtil.strToBcd(addressCode); - data[13] = addresscodes[0]; - data[14] = addresscodes[1]; + System.arraycopy(addresscodes, 0, data, 13, 2); data[15] = getByteSum(data); return data; } @@ -195,14 +170,12 @@ /** * 鐢ㄦ埛鍗�1鍧� */ - public class One extends BaseCard { + public class One { public byte[] toBytes() { byte[] data = new byte[16]; byte[] balances = HexUtil.hexToByteArray(HexUtil.get10to16LowHigh(balance, 8)); - for (int i = 0; i < balances.length; i++) { - data[i] = balances[i]; - } + System.arraycopy(balances, 0, data, 0, balances.length); if (rechargeDate != null) { // 鑾峰彇骞淬�佹湀銆佹棩銆佹椂銆佸垎銆佺 @@ -221,6 +194,7 @@ byte bcdHour = (byte) ((hour / 10) << 4 | (hour % 10)); byte bcdMinute = (byte) ((minute / 10) << 4 | (minute % 10)); byte bcdSecond = (byte) ((second / 10) << 4 | (second % 10)); + data[4] = bcdYear; data[5] = bcdMonth; data[6] = bcdDay; @@ -229,9 +203,7 @@ data[9] = bcdSecond; } byte[] initPeasantCodes = HexUtil.hexToByteArray(initPeasantCode); - for (int i = 0; i < 5; i++) { - data[i + 10] = initPeasantCodes[i]; - } + System.arraycopy(initPeasantCodes, 5, data, 0, 5); data[15] = getByteSum(data); return data; } @@ -242,13 +214,11 @@ /** * 鐢ㄦ埛鍗�2鍧� */ - public class Two extends BaseCard { + public class Two { public byte[] toBytes() { byte[] data = new byte[16]; byte[] initPeasantCodes = HexUtil.hexToByteArray(initPeasantCode); - for (int i = 5; i < 16; i++) { - data[i - 5] = initPeasantCodes[i]; - } + System.arraycopy(initPeasantCodes, 5, data, 0, 11); byte[] addresscodes = BcdUtil.strToBcd(addressCode); data[11] = addresscodes[2]; data[12] = addresscodes[3]; 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 70aadb6..35a29e8 100644 --- a/app/src/main/java/com/dayu/recharge/utils/MyCommon.java +++ b/app/src/main/java/com/dayu/recharge/utils/MyCommon.java @@ -69,4 +69,31 @@ */ public static final String PASS_WORD_CRAD_TYPE = "B3"; + + /** + * 鑾峰彇榛樿鐨勫崱鏍囪瘑 + * + * @param cardType 鍗$墖绫诲瀷 + * @return 鍗″唴瀹� + */ + public static String getDefaultCardData(String cardType) { + String cardData = ""; + switch (cardType) { + case MANAGE_CRAD: + case CLEAN_CARD_TYPE: + cardData = "3668F7A30119"; + break; + case REGISTERED_CARD_TYPE: + case CLEAN_ALL_USER_CARD_TYPE: + case TEST_CARD_TYPE: + case CONFIGURATION_CARD_TYPE: + case CONFIGURATION_POWER_CARD_TYPE: + case PASS_WORD_CRAD_TYPE: + cardData = "A0B1C289"; + break; + } + return cardData; + } + + } diff --git a/app/src/main/res/layout/activity_identyfying.xml b/app/src/main/res/layout/activity_identyfying.xml index e72d9be..d1e7fb3 100644 --- a/app/src/main/res/layout/activity_identyfying.xml +++ b/app/src/main/res/layout/activity_identyfying.xml @@ -74,7 +74,10 @@ android:layout_height="wrap_content" android:layout_below="@+id/electric_ll" android:layout_alignParentStart="true" - android:layout_margin="20dp" + android:layout_marginStart="20dp" + android:layout_marginTop="20dp" + android:layout_marginEnd="20dp" + android:layout_marginBottom="20dp" android:hint="璇疯緭鍏ユ柊鐨勫崱鏍囪瘑" android:inputType="number" /> -- Gitblit v1.8.0