| | |
| | | import android.os.Bundle; |
| | | import android.os.Handler; |
| | | import android.os.Message; |
| | | import android.text.TextUtils; |
| | | import android.view.LayoutInflater; |
| | | import android.view.View; |
| | | |
| | |
| | | import com.dayu.recharge.card.DomainCard; |
| | | import com.dayu.recharge.card.UserCard; |
| | | import com.dayu.recharge.databinding.ActivityRedCardBinding; |
| | | import com.dayu.recharge.dbBean.RechargeBean; |
| | | import com.dayu.recharge.dbBean.UserCardBean; |
| | | import com.dayu.recharge.net.SocketCallBack; |
| | | import com.dayu.recharge.net.SocketData; |
| | | import com.dayu.recharge.net.SocketNet; |
| | |
| | | import com.dayu.recharge.tools.BcdUtil; |
| | | import com.dayu.recharge.tools.HexUtil; |
| | | 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.MornyUtil; |
| | | import com.dayu.recharge.utils.MyCommon; |
| | | import com.dayu.recharge.utils.SocketUtil; |
| | | import com.dayu.recharge.utils.ToastUtil; |
| | | import com.dayu.recharge.utils.WSHelper; |
| | | import com.dayu.recharge.utils.TipUtil; |
| | | |
| | | import java.util.Arrays; |
| | | import java.util.Calendar; |
| | |
| | | |
| | | volatile UserCard userCard; |
| | | ActivityRedCardBinding redCardBinding; |
| | | |
| | | Intent intent; |
| | | |
| | | @Override |
| | | protected void onCreate(Bundle savedInstanceState) { |
| | |
| | | |
| | | @Override |
| | | public void onNewIntent(Intent intent) { |
| | | super.onNewIntent(intent); |
| | | this.intent = intent; |
| | | startAnim(); |
| | | if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) { |
| | | readAllData(intent); |
| | |
| | | /** |
| | | * 读取全部数据 |
| | | */ |
| | | private void readAllData(Intent intent) { |
| | | |
| | | public void readAllData(Intent intent) { |
| | | NfcReadHelper.getInstence(intent) |
| | | .getAllData(new NfcReadHelper.NFCCallListback() { |
| | | @Override |
| | |
| | | break; |
| | | case MyCommon.ERROR_MOVE: |
| | | stopAnim(); |
| | | ToastUtil.show("连接中断,请重新贴合卡片"); |
| | | TipUtil.show("连接中断,请重新贴合卡片"); |
| | | break; |
| | | default: |
| | | ToastUtil.show(ReadCardAcitivy.this, "卡片无法识别"); |
| | | TipUtil.show(ReadCardAcitivy.this, "卡片无法识别"); |
| | | stopAnim(); |
| | | break; |
| | | } |
| | |
| | | |
| | | try { |
| | | stateText = new StringBuffer(); |
| | | // stateText.append("状 态:"); |
| | | //金额 |
| | | 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)); |
| | | setUserData(name, balance, stateText.toString()); |
| | | 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); |
| | | stateText.append("启用"); |
| | | } else if ("01".equals(state)) { |
| | | userCard.setBalance(balance); |
| | | userCard.setState("01"); |
| | | WriteCardUtils.setUser(intent, userCard); |
| | | stateText.append("禁用"); |
| | | } else if ("02".equals(state)) { |
| | | stateText.append("隶属信息不符"); |
| | |
| | | } else if ("04".equals(state)) { |
| | | stateText.append("其它"); |
| | | } |
| | | //金额 |
| | | 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)); |
| | | |
| | | |
| | | setUserData(name, balance, stateText.toString()); |
| | | stopAnim(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } else { |
| | | //校验CRC错误 |
| | | ToastUtil.show(ReadCardAcitivy.this, "开卡报文校验CRC错误"); |
| | | TipUtil.show(ReadCardAcitivy.this, "开卡报文校验CRC错误"); |
| | | } |
| | | stopAnim(); |
| | | } |
| | | |
| | | @Override |
| | | public void onSocketError(int code, String msg) { |
| | | ToastUtil.show(ReadCardAcitivy.this, msg); |
| | | TipUtil.show(ReadCardAcitivy.this, msg); |
| | | } |
| | | }); |
| | | |