From 9c11fb9a45b0f1ff2a86eb139078e5361216434b Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期三, 29 十一月 2023 14:59:10 +0800 Subject: [PATCH] 读取模拟卡修改后注释(未完成) --- app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java | 153 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 147 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java b/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java index 50ca2b4..5895e71 100644 --- a/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java @@ -10,10 +10,23 @@ import android.widget.EditText; import com.dayu.recharge.databinding.ActivityRechargeBinding; +import com.dayu.recharge.dbBean.AdminDataBean; +import com.dayu.recharge.net.SocketCallBack; +import com.dayu.recharge.net.SocketData; +import com.dayu.recharge.net.SocketNet; +import com.dayu.recharge.socketBean.BalanceSelecteRequestBean; +import com.dayu.recharge.tools.BcdUtil; +import com.dayu.recharge.tools.NfcReadHelper; +import com.dayu.recharge.tools.WriteCardUtils; +import com.dayu.recharge.utils.CRC8; import com.dayu.recharge.utils.DeviceNumberUtils; -import com.dayu.recharge.utils.ToastUtil; -import com.dayu.recharge.utils.WSHelper; +import com.dayu.recharge.utils.MornyUtil; +import com.dayu.recharge.utils.SocketUtil; +import com.dayu.recharge.utils.TipUtil; +import com.dayu.recharge.view.ProgressDialog; import com.tencent.bugly.crashreport.CrashReport; + +import java.util.Arrays; /** @@ -22,11 +35,16 @@ * Date: 2023-11-5 09:52 * Description: 鍏呭�肩晫闈� */ -public class RechargeActivity extends BaseActivity { +public class RechargeActivity extends BaseNfcActivity { + Intent intent; + boolean userFlag; ActivityRechargeBinding binding; public static RechargeActivity rechargeActivity; + + AdminDataBean adminData; + String userName; @Override protected void onCreate(Bundle savedInstanceState) { @@ -43,7 +61,33 @@ } } + public void onNewIntent(Intent intent) { + + try { + this.intent = intent; + userCard = NfcReadHelper.getInstence(intent).getUserCardData(); + if (userCard != null) { + ProgressDialog.show(this); + selectBalance(userCard.getInitPeasantCode()); + } else { + TipUtil.show(RechargeActivity.this, "鍗$墖璇诲彇澶辫触"); + } + +// readAllData(intent); + } catch (Exception e) { + e.printStackTrace(); + CrashReport.postCatchedException(e); + } + super.onNewIntent(intent); + } + private void initView() { + try { + adminData = baseDao.adminDao().findFirst(); + } catch (Exception e) { + e.printStackTrace(); + CrashReport.postCatchedException(e); + } binding.rechargeRegistBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -51,20 +95,23 @@ if (!TextUtils.isEmpty(morny)) { String initCode = DeviceNumberUtils.getDeviceNumber(); if (TextUtils.isEmpty(initCode)) { - ToastUtil.show(RechargeActivity.this, "璁惧娉ㄥ唽鍙蜂负绌猴紝璇峰厛璁剧疆IP鍜岀鐞嗗憳鍦板潃"); -// return; + TipUtil.show(RechargeActivity.this, "璁惧娉ㄥ唽鍙蜂负绌猴紝璇峰厛璁剧疆IP鍜岀鐞嗗憳鍦板潃"); + return; } Intent intent = new Intent(RechargeActivity.this, NFCWreatActivity.class); intent.putExtra("morny", morny); + intent.putExtra("userName", userName); + intent.putExtra("userCard", userCard); startActivity(intent); } else { - ToastUtil.show(RechargeActivity.this, "璇疯緭鍏ュ厖鍊奸噾棰濓紙鍏冿級"); + TipUtil.show(RechargeActivity.this, "璇疯緭鍏ュ厖鍊奸噾棰濓紙鍏冿級"); } } }); } + //鏍¢獙閲戦 public static void setPricePoint(final EditText editText) { editText.addTextChangedListener(new TextWatcher() { @Override @@ -110,5 +157,99 @@ } + /** + * 鏌ヨ浣欓 + * + * @param initPeasantCode 鍐滄埛娉ㄥ唽缂栧彿 + */ + private void selectBalance(String initPeasantCode) { + try { + BalanceSelecteRequestBean requestBean = new BalanceSelecteRequestBean(); + requestBean.setAFN("94"); + requestBean.setControl("01"); + String initCode = DeviceNumberUtils.getDeviceNumber(); + requestBean.setInitCode(initCode); + requestBean.setInitPeasantCode(initPeasantCode); + requestBean.setXuLie(SocketUtil.getXuLie(this)); + SocketNet.getInstance().sendTestMessage(requestBean.pack(), new SocketCallBack() { + @Override + public void onSocketResponse(SocketData readData) { + ProgressDialog.dismiss(); + if (CRC8.isCRC8(readData.getOriginDataBytes())) { + StringBuffer stateText = null; + try { + stateText = new StringBuffer(); + String state = BcdUtil.bcdToStr(readData.getBodyBytes()[2]); //BCD鐮�00鍚敤 01绂佺敤 02闅跺睘淇℃伅涓嶇 03鏃犳鍗′俊鎭� 04鍏跺畠s + int balance = 0; + try { + //鍙湁鍚姩鐘舵�佹墠鑳藉厖鍊� + //閲戦 + byte[] blanceByte = Arrays.copyOfRange(readData.getBodyBytes(), 3, 7); + balance = SocketUtil.get16to10LowHigh(blanceByte); + //濮撳悕 + byte[] nameByte = Arrays.copyOfRange(readData.getBodyBytes(), 7, 19); + userName = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte)); + } catch (Exception e) { + e.printStackTrace(); + } + binding.rechargeLL.setVisibility(View.VISIBLE); + binding.rechargeRegistBtn.setVisibility(View.VISIBLE); + binding.rechargeReadLL.setVisibility(View.GONE); + binding.rechargeTextLL.setVisibility(View.VISIBLE); + binding.userName.setText(userName); + binding.redRemainderBlance.setText(MornyUtil.changeF2Y(balance)); + binding.redStatu.setText(stateText.toString()); + binding.redInitCode.setText(initPeasantCode); + + if ("00".equals(state)) { + binding.rechargeRegistBtn.setVisibility(View.VISIBLE); + stateText.append("鍚敤"); + userCard.setState("00"); + userCard.setBalance(balance); + binding.redStatu.setText(stateText.toString()); + return; + } else if ("01".equals(state)) { + stateText.append("璇ュ崱宸茶绂佺敤"); + userCard.setState("01"); + userCard.setBalance(balance); + userFlag = WriteCardUtils.setUser(intent, userCard); + } else if ("02".equals(state)) { + stateText.append("闅跺睘淇℃伅涓嶇"); + } else if ("03".equals(state)) { + stateText.append("鏃犳鍗′俊鎭�"); + } else if ("04".equals(state)) { + stateText.append("鍏跺畠"); + } + binding.redStatu.setText(stateText.toString()); + binding.rechargeLL.setVisibility(View.GONE); + binding.rechargeRegistBtn.setVisibility(View.GONE); + binding.rechargeRegistBtn.setVisibility(View.GONE); + TipUtil.show(RechargeActivity.this, stateText.toString()); + } catch (Exception e) { + e.printStackTrace(); + } + } else { + //鏍¢獙CRC閿欒 + TipUtil.show(RechargeActivity.this, "寮�鍗℃姤鏂囨牎楠孋RC閿欒"); + } + } + + @Override + public void onSocketError(int code, String msg) { + ProgressDialog.dismiss(); + TipUtil.show(RechargeActivity.this, msg); + } + }); + } catch (Exception e) { + e.printStackTrace(); + CrashReport.postCatchedException(e); + } + + } + + protected void onDestroy() { + super.onDestroy(); + rechargeActivity = null; + } } -- Gitblit v1.8.0