| | |
| | | import android.content.Intent; |
| | | import android.nfc.NfcAdapter; |
| | | import android.os.Bundle; |
| | | import android.os.Handler; |
| | | import android.os.Message; |
| | | import android.view.LayoutInflater; |
| | | import android.view.View; |
| | | |
| | | |
| | | import com.dayu.recharge.card.ConfigurationPowerCard; |
| | | import com.dayu.recharge.card.DomainCard; |
| | |
| | | |
| | | @Override |
| | | public void onNewIntent(Intent intent) { |
| | | super.onNewIntent(intent); |
| | | this.intent = intent; |
| | | ProgressDialog.show(this); |
| | | if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) { |
| | | readAllData(intent); |
| | | } |
| | | super.onNewIntent(intent); |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | public void readAllData(Intent intent) { |
| | | NfcReadHelper.getInstence(intent) |
| | | .getAllData(new NfcReadHelper.NFCCallListback() { |
| | | .getOneSectorData(new NfcReadHelper.NFCCallListback() { |
| | | @Override |
| | | public void callBack(Map<String, List<byte[]>> data) { |
| | | Message message = new Message(); |
| | | public void callBack(List<byte[]> data) { |
| | | //获取1扇区数据 |
| | | List<byte[]> oneSector = data.get("1"); |
| | | if (oneSector != null && oneSector.size() > 0) { |
| | | byte cardType = oneSector.get(0)[0]; |
| | | if (data != null && data.size() > 0) { |
| | | byte cardType = data.get(0)[0]; |
| | | String cardTypeStr = HexUtil.byteToHex(cardType); |
| | | switch (cardTypeStr) { |
| | | case MyCommon.USER_CARD_TYPE_1: |
| | | case MyCommon.USER_CARD_TYPE_2: |
| | | case MyCommon.USER_CARD_TYPE_3: |
| | | userCard = UserCard.getBean(oneSector); |
| | | message.what = USER_CRAD; |
| | | userCard = UserCard.getBean(data); |
| | | selectBalance(userCard.getInitPeasantCode()); |
| | | break; |
| | | case MyCommon.MANAGE_CRAD: |
| | | message.what = MANAGE_CRAD; |
| | | viweGone(false); |
| | | redCardBinding.readCardTypeTV.setText("当前为管理卡"); |
| | | stopAnim(); |
| | | break; |
| | | case MyCommon.CLEAN_CARD_TYPE: |
| | | message.what = CLEAN_CARD; |
| | | viweGone(false); |
| | | redCardBinding.readCardTypeTV.setText("当前为清零卡"); |
| | | stopAnim(); |
| | | break; |
| | | case MyCommon.REGISTERED_CARD_TYPE: |
| | | message.what = REGISTERED_CARD; |
| | | viweGone(false); |
| | | redCardBinding.readCardTypeTV.setText("当前为重新注册设备卡"); |
| | | stopAnim(); |
| | | |
| | | break; |
| | | case MyCommon.CLEAN_ALL_USER_CARD_TYPE: |
| | | message.what = CLEAN_ALL_USER; |
| | | viweGone(false); |
| | | redCardBinding.readCardTypeTV.setText("当前为删除全部用户卡"); |
| | | stopAnim(); |
| | | break; |
| | | case MyCommon.DOMAIN_CARD_TYPE: |
| | | message.what = DOMAIN_CARD; |
| | | message.obj = oneSector; |
| | | viweGone(false); |
| | | redCardBinding.readCardTypeTV.setText("当前为设置域名卡"); |
| | | DomainCard domainCard = DomainCard.toBean(data); |
| | | redCardBinding.readCardDataTV.setText("序号:" + domainCard.getDomainNumber() + "\n" + "域名:" + domainCard.getDomainName() + "\n" + "端口号:" + domainCard.getPort()); |
| | | stopAnim(); |
| | | break; |
| | | case MyCommon.TEST_CARD_TYPE: |
| | | message.what = TEST_CARD; |
| | | viweGone(false); |
| | | redCardBinding.readCardTypeTV.setText("当前为测试卡"); |
| | | stopAnim(); |
| | | break; |
| | | case MyCommon.CONFIGURATION_CARD_TYPE: |
| | | message.what = CONFIGURATION_CARD; |
| | | viweGone(false); |
| | | redCardBinding.readCardTypeTV.setText("当前为配置设备注册信息卡"); |
| | | stopAnim(); |
| | | break; |
| | | case MyCommon.CONFIGURATION_POWER_CARD_TYPE: |
| | | message.what = CONFIGURATION_POWER_CARD; |
| | | message.obj = oneSector.get(0); |
| | | viweGone(false); |
| | | redCardBinding.readCardTypeTV.setText("当前配置水泵功率卡"); |
| | | ConfigurationPowerCard powerCard = ConfigurationPowerCard.toBean(data.get(0)); |
| | | redCardBinding.readCardDataTV.setText(powerCard.getPower()); |
| | | stopAnim(); |
| | | break; |
| | | default: |
| | | TipUtil.show(ReadCardAcitivy.this, "卡片无法识别"); |
| | | stopAnim(); |
| | | break; |
| | | } |
| | | |
| | | } else { |
| | | message.what = MyCommon.ERROR; |
| | | TipUtil.show(ReadCardAcitivy.this, "卡片无法识别"); |
| | | stopAnim(); |
| | | } |
| | | handler.sendMessage(message); |
| | | } |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void error(int code) { |
| | | Message message = new Message(); |
| | | message.what = code; |
| | | handler.sendMessage(message); |
| | | switch (code) { |
| | | case MyCommon.ERROR_MOVE: |
| | | stopAnim(); |
| | | TipUtil.show("连接中断,请重新贴合卡片"); |
| | | break; |
| | | default: |
| | | stopAnim(); |
| | | TipUtil.show("卡片识别错误,请重试!"); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | Handler handler = new Handler(new Handler.Callback() { |
| | | @Override |
| | | public boolean handleMessage(Message msg) { |
| | | switch (msg.what) { |
| | | case USER_CRAD: |
| | | selectBalance(userCard.getInitPeasantCode()); |
| | | break; |
| | | case MANAGE_CRAD: |
| | | viweGone(false); |
| | | redCardBinding.readCardTypeTV.setText("当前为管理卡"); |
| | | stopAnim(); |
| | | break; |
| | | case CLEAN_CARD: |
| | | viweGone(false); |
| | | redCardBinding.readCardTypeTV.setText("当前为清零卡"); |
| | | stopAnim(); |
| | | break; |
| | | case REGISTERED_CARD: |
| | | viweGone(false); |
| | | redCardBinding.readCardTypeTV.setText("当前为重新注册设备卡"); |
| | | stopAnim(); |
| | | break; |
| | | case CLEAN_ALL_USER: |
| | | viweGone(false); |
| | | redCardBinding.readCardTypeTV.setText("当前为删除全部用户卡"); |
| | | stopAnim(); |
| | | break; |
| | | case DOMAIN_CARD: |
| | | viweGone(false); |
| | | redCardBinding.readCardTypeTV.setText("当前为设置域名卡"); |
| | | List<byte[]> data = (List<byte[]>) msg.obj; |
| | | DomainCard domainCard = DomainCard.toBean(data); |
| | | redCardBinding.readCardDataTV.setText("序号:" + domainCard.getDomainNumber() + "\n" + "域名:" + domainCard.getDomainName() + "\n" + "端口号:" + domainCard.getPort()); |
| | | stopAnim(); |
| | | break; |
| | | case TEST_CARD: |
| | | viweGone(false); |
| | | redCardBinding.readCardTypeTV.setText("当前为测试卡"); |
| | | stopAnim(); |
| | | break; |
| | | case CONFIGURATION_CARD: |
| | | viweGone(false); |
| | | redCardBinding.readCardTypeTV.setText("当前为配置设备注册信息卡"); |
| | | stopAnim(); |
| | | break; |
| | | case CONFIGURATION_POWER_CARD: |
| | | viweGone(false); |
| | | redCardBinding.readCardTypeTV.setText("当前配置水泵功率卡"); |
| | | byte[] powerData = (byte[]) msg.obj; |
| | | ConfigurationPowerCard powerCard = ConfigurationPowerCard.toBean(powerData); |
| | | redCardBinding.readCardDataTV.setText(powerCard.getPower()); |
| | | stopAnim(); |
| | | break; |
| | | case PASS_WORD_CRAD: |
| | | viweGone(false); |
| | | redCardBinding.readCardTypeTV.setText("当前为密码卡"); |
| | | stopAnim(); |
| | | break; |
| | | case MyCommon.ERROR_MOVE: |
| | | stopAnim(); |
| | | TipUtil.show("连接中断,请重新贴合卡片"); |
| | | break; |
| | | default: |
| | | TipUtil.show(ReadCardAcitivy.this, "卡片无法识别"); |
| | | stopAnim(); |
| | | break; |
| | | } |
| | | return false; |
| | | } |
| | | }); |
| | | |
| | | private void viweGone(boolean isUSerCard) { |
| | | redCardBinding.readImgLL.setVisibility(View.GONE); |