| | |
| | | import android.content.Intent; |
| | | import android.nfc.NfcAdapter; |
| | | import android.os.Bundle; |
| | | import android.os.Message; |
| | | import android.text.TextUtils; |
| | | import android.view.LayoutInflater; |
| | | import android.view.View; |
| | | |
| | |
| | | import java.util.Arrays; |
| | | import java.util.Calendar; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * Copyright (C), 2023, |
| | |
| | | * Description: 读卡界面 |
| | | */ |
| | | public class ReadCardAcitivy extends BaseNfcActivity { |
| | | |
| | | private static final int USER_CRAD = 1; |
| | | private static final int MANAGE_CRAD = 2; |
| | | private static final int CLEAN_CARD = 3; |
| | | private static final int REGISTERED_CARD = 4; |
| | | private static final int CLEAN_ALL_USER = 5; |
| | | private static final int DOMAIN_CARD = 6; |
| | | private static final int TEST_CARD = 7; |
| | | |
| | | private static final int CONFIGURATION_CARD = 8; |
| | | |
| | | private static final int CONFIGURATION_POWER_CARD = 9; |
| | | private static final int PASS_WORD_CRAD = 10; |
| | | |
| | | |
| | | volatile UserCard userCard; |
| | | ActivityRedCardBinding redCardBinding; |
| | |
| | | redCardBinding.redName.setText("用户姓名:" + userName); |
| | | redCardBinding.redRemainderBlance.setText("剩余金额:" + MornyUtil.changeF2Y(blance) + "元"); |
| | | redCardBinding.redStatu.setText("卡状态:" + statu); |
| | | redCardBinding.redAddressCode.setText("地址码:" + userCard.getAddressCode()); |
| | | if (userCard != null) { |
| | | redCardBinding.redInitCode.setText("用户注册编号:" + userCard.getInitPeasantCode()); |
| | | redCardBinding.redInitCode.setText(userCard.getInitPeasantCode()); |
| | | Calendar calendar = userCard.getRechargeDate(); |
| | | if (calendar != null) { |
| | | int year = calendar.get(Calendar.YEAR); |
| | |
| | | */ |
| | | |
| | | public void readAllData(Intent intent) { |
| | | NfcReadHelper.getInstence(intent) |
| | | NfcReadHelper.getInstence(intent, this) |
| | | .getOneSectorData(new NfcReadHelper.NFCCallListback() { |
| | | @Override |
| | | public void callBack(List<byte[]> data) { |
| | |
| | | * @param initPeasantCode 农户注册编号 |
| | | */ |
| | | private void selectBalance(String initPeasantCode) { |
| | | String initCode = DeviceNumberUtils.getDeviceNumber(); |
| | | if (TextUtils.isEmpty(initCode)) { |
| | | TipUtil.show("设备未注册"); |
| | | return; |
| | | } |
| | | 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() { |
| | | SocketNet.getInstance().sendTestMessage(requestBean.pack(), "94",new SocketCallBack() { |
| | | @Override |
| | | public void onSocketResponse(SocketData readData) { |
| | | if (CRC8.isCRC8(readData.getOriginDataBytes())) { |
| | |
| | | |
| | | try { |
| | | stateText = new StringBuffer(); |
| | | //金额 |
| | | byte[] blanceByte = Arrays.copyOfRange(readData.getBodyBytes(), 3, 7); |
| | | int balance = SocketUtil.get16to10LowHigh(blanceByte); |
| | | //姓名 |
| | | byte[] nameByte = Arrays.copyOfRange(readData.getBodyBytes(), 7, 19); |
| | | String name = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte)); |
| | | int balance = 0; |
| | | String name = null; |
| | | try { |
| | | //金额 |
| | | byte[] blanceByte = Arrays.copyOfRange(readData.getBodyBytes(), 3, 7); |
| | | balance = SocketUtil.get16to10LowHigh(blanceByte); |
| | | //姓名 |
| | | byte[] nameByte = Arrays.copyOfRange(readData.getBodyBytes(), 7, 19); |
| | | name = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte)); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | String state = BcdUtil.bcdToStr(readData.getBodyBytes()[2]); //BCD码00启用 01禁用 02隶属信息不符 03无此卡信息 04其它s |
| | | if ("00".equals(state)) { |
| | | userCard.setBalance(balance); |
| | | userCard.setState("00"); |
| | | |
| | | WriteCardUtils.setUser(intent, userCard); |
| | | WriteCardUtils.setUser(intent, userCard, ReadCardAcitivy.this); |
| | | stateText.append("启用"); |
| | | } else if ("01".equals(state)) { |
| | | userCard.setBalance(balance); |
| | | userCard.setState("01"); |
| | | WriteCardUtils.setUser(intent, userCard); |
| | | WriteCardUtils.setUser(intent, userCard, ReadCardAcitivy.this); |
| | | stateText.append("禁用"); |
| | | } else if ("02".equals(state)) { |
| | | stateText.append("隶属信息不符"); |
| | |
| | | |
| | | @Override |
| | | public void onSocketError(int code, String msg) { |
| | | stopAnim(); |
| | | TipUtil.show(ReadCardAcitivy.this, msg); |
| | | } |
| | | }); |
| | | |
| | | } |
| | | |
| | | } |