|  |  | 
 |  |  | import android.view.LayoutInflater; | 
 |  |  | import android.view.View; | 
 |  |  |  | 
 |  |  | import com.dayu.baselibrary.activity.BaseNfcActivity; | 
 |  |  | import com.dayu.baselibrary.tools.BcdUtil; | 
 |  |  | import com.dayu.baselibrary.tools.HexUtil; | 
 |  |  | import com.dayu.baselibrary.tools.nfc.BaseNfcReadHelper; | 
 |  |  | import com.dayu.baselibrary.tools.nfc.CardCommonState; | 
 |  |  | import com.dayu.baselibrary.utils.CRC8; | 
 |  |  | import com.dayu.henanlibrary.utils.DeviceNumberUtils; | 
 |  |  | import com.dayu.baselibrary.utils.MornyUtil; | 
 |  |  | import com.dayu.baselibrary.utils.TipUtil; | 
 |  |  | import com.dayu.henanlibrary.card.ConfigurationPowerCard; | 
 |  |  | import com.dayu.henanlibrary.card.ConfigurationPowerCardHN; | 
 |  |  | import com.dayu.henanlibrary.card.DomainCard; | 
 |  |  | import com.dayu.henanlibrary.card.UserCard; | 
 |  |  | import com.dayu.henanlibrary.databinding.ActivityRedCardBinding; | 
 |  |  | import com.dayu.henanlibrary.card.UserCardHN; | 
 |  |  | import com.dayu.henanlibrary.databinding.ActivityRedCardHnBinding; | 
 |  |  | import com.dayu.henanlibrary.net.SocketCallBack; | 
 |  |  | import com.dayu.henanlibrary.net.SocketData; | 
 |  |  | import com.dayu.henanlibrary.net.SocketNet; | 
 |  |  | import com.dayu.henanlibrary.socketBean.BalanceSelecteRequestBean; | 
 |  |  | import com.dayu.henanlibrary.tools.NfcReadHelper; | 
 |  |  | import com.dayu.henanlibrary.tools.WriteCardUtils; | 
 |  |  | import com.dayu.henanlibrary.utils.MyCommon; | 
 |  |  | import com.dayu.henanlibrary.utils.CardCommon; | 
 |  |  | import com.dayu.henanlibrary.utils.DeviceNumberUtils; | 
 |  |  | import com.dayu.henanlibrary.utils.SocketUtil; | 
 |  |  | import com.dayu.henanlibrary.view.ProgressDialog; | 
 |  |  |  | 
 |  |  | 
 |  |  |  * Date: 2023-11-10 19:52 | 
 |  |  |  * Description: 读卡界面 | 
 |  |  |  */ | 
 |  |  | public class ReadCardAcitivy extends BaseNfcActivity { | 
 |  |  | public class ReadCardAcitivy extends HNBaseNfcActivity { | 
 |  |  |  | 
 |  |  |     volatile UserCard userCard; | 
 |  |  |     ActivityRedCardBinding redCardBinding; | 
 |  |  |     volatile UserCardHN userCard; | 
 |  |  |     ActivityRedCardHnBinding redCardBinding; | 
 |  |  |  | 
 |  |  |     Intent intent; | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     protected void onCreate(Bundle savedInstanceState) { | 
 |  |  |         super.onCreate(savedInstanceState); | 
 |  |  |         redCardBinding = ActivityRedCardBinding.inflate(LayoutInflater.from(this)); | 
 |  |  |         redCardBinding = ActivityRedCardHnBinding.inflate(LayoutInflater.from(this)); | 
 |  |  |         setContentView(redCardBinding.getRoot()); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public void onNewIntent(Intent intent) { | 
 |  |  |         this.intent = intent; | 
 |  |  |     public void onNfcBack(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, this) | 
 |  |  |                 .getOneSectorData(new NfcReadHelper.NFCCallListback() { | 
 |  |  |                 .getOneSectorData(new BaseNfcReadHelper.NFCCallListback() { | 
 |  |  |                     @Override | 
 |  |  |                     public void callBack(List<byte[]> data) { | 
 |  |  |                         //获取1扇区数据 | 
 |  |  | 
 |  |  |                             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(data); | 
 |  |  |                                 case CardCommon.USER_CARD_TYPE_1: | 
 |  |  |                                 case CardCommon.USER_CARD_TYPE_2: | 
 |  |  |                                 case CardCommon.USER_CARD_TYPE_3: | 
 |  |  |                                     userCard = new UserCardHN().getBean(data); | 
 |  |  |                                     selectBalance(userCard.getInitPeasantCode()); | 
 |  |  |                                     break; | 
 |  |  |                                 case MyCommon.MANAGE_CRAD: | 
 |  |  |                                 case CardCommon.MANAGE_CRAD: | 
 |  |  |                                     viweGone(false); | 
 |  |  |                                     redCardBinding.readCardTypeTV.setText("当前为管理卡"); | 
 |  |  |                                     stopAnim(); | 
 |  |  |                                     break; | 
 |  |  |                                 case MyCommon.CLEAN_CARD_TYPE: | 
 |  |  |                                 case CardCommon.CLEAN_CARD_TYPE: | 
 |  |  |                                     viweGone(false); | 
 |  |  |                                     redCardBinding.readCardTypeTV.setText("当前为清零卡"); | 
 |  |  |                                     stopAnim(); | 
 |  |  |                                     break; | 
 |  |  |                                 case MyCommon.REGISTERED_CARD_TYPE: | 
 |  |  |                                 case CardCommon.REGISTERED_CARD_TYPE: | 
 |  |  |                                     viweGone(false); | 
 |  |  |                                     redCardBinding.readCardTypeTV.setText("当前为重新注册设备卡"); | 
 |  |  |                                     stopAnim(); | 
 |  |  |  | 
 |  |  |                                     break; | 
 |  |  |                                 case MyCommon.CLEAN_ALL_USER_CARD_TYPE: | 
 |  |  |                                 case CardCommon.CLEAN_ALL_USER_CARD_TYPE: | 
 |  |  |                                     viweGone(false); | 
 |  |  |                                     redCardBinding.readCardTypeTV.setText("当前为删除全部用户卡"); | 
 |  |  |                                     stopAnim(); | 
 |  |  |                                     break; | 
 |  |  |                                 case MyCommon.DOMAIN_CARD_TYPE: | 
 |  |  |                                 case CardCommon.DOMAIN_CARD_TYPE: | 
 |  |  |                                     viweGone(false); | 
 |  |  |                                     redCardBinding.readCardTypeTV.setText("当前为设置域名卡"); | 
 |  |  |                                     DomainCard domainCard = DomainCard.toBean(data); | 
 |  |  |                                     redCardBinding.readCardDataTV.setText("序号:" + domainCard.getDomainNumber() + "\n" + "域名:" + domainCard.getDomainName() + "\n" + "端口号:" + domainCard.getPort()); | 
 |  |  |                                     DomainCard domainXinXiangCard = DomainCard.toBean(data); | 
 |  |  |                                     if (domainXinXiangCard.getType() == 0) { | 
 |  |  |                                         redCardBinding.readCardTypeTV.setText("当前为新乡域名卡"); | 
 |  |  |                                     } else { | 
 |  |  |                                         redCardBinding.readCardTypeTV.setText("当前为鹿邑域名卡"); | 
 |  |  |                                     } | 
 |  |  |                                     StringBuilder builder = new StringBuilder(); | 
 |  |  |                                     if (domainXinXiangCard.getType() == 0) { | 
 |  |  |                                         builder.append("序号:" + domainXinXiangCard.getDomainNumber() + "\n"); | 
 |  |  |                                     } | 
 |  |  |                                     builder.append("域名:" + domainXinXiangCard.getDomainName()); | 
 |  |  |                                     builder.append("\n" + "端口号:" + domainXinXiangCard.getPort()); | 
 |  |  |  | 
 |  |  |                                     redCardBinding.readCardDataTV.setText(builder.toString()); | 
 |  |  |                                     stopAnim(); | 
 |  |  |                                     break; | 
 |  |  |                                 case MyCommon.TEST_CARD_TYPE: | 
 |  |  |                                 case CardCommon.TEST_CARD_TYPE: | 
 |  |  |                                     viweGone(false); | 
 |  |  |                                     redCardBinding.readCardTypeTV.setText("当前为测试卡"); | 
 |  |  |                                     stopAnim(); | 
 |  |  |                                     break; | 
 |  |  |                                 case MyCommon.CONFIGURATION_CARD_TYPE: | 
 |  |  |                                 case CardCommon.CONFIGURATION_CARD_TYPE: | 
 |  |  |                                     viweGone(false); | 
 |  |  |                                     redCardBinding.readCardTypeTV.setText("当前为配置设备注册信息卡"); | 
 |  |  |                                     stopAnim(); | 
 |  |  |                                     break; | 
 |  |  |                                 case MyCommon.CONFIGURATION_POWER_CARD_TYPE: | 
 |  |  |                                 case CardCommon.CONFIGURATION_POWER_CARD_TYPE: | 
 |  |  |                                     viweGone(false); | 
 |  |  |                                     redCardBinding.readCardTypeTV.setText("当前配置水泵功率卡"); | 
 |  |  |                                     ConfigurationPowerCard powerCard = ConfigurationPowerCard.toBean(data.get(0)); | 
 |  |  |                                     ConfigurationPowerCardHN powerCard = ConfigurationPowerCardHN.toBean(data.get(0)); | 
 |  |  |                                     redCardBinding.readCardDataTV.setText(powerCard.getPower()); | 
 |  |  |                                     stopAnim(); | 
 |  |  |                                     break; | 
 |  |  |                                 default: | 
 |  |  |                                     TipUtil.show(ReadCardAcitivy.this, "卡片无法识别"); | 
 |  |  |                                     TipUtil.show(ReadCardAcitivy.this, "当前卡片为白卡,请制卡后读取"); | 
 |  |  |                                     stopAnim(); | 
 |  |  |                                     break; | 
 |  |  |                             } | 
 |  |  | 
 |  |  |                     @Override | 
 |  |  |                     public void error(int code) { | 
 |  |  |                         switch (code) { | 
 |  |  |                             case MyCommon.ERROR_MOVE: | 
 |  |  |                             case CardCommonState.ERROR_MOVE: | 
 |  |  |                                 stopAnim(); | 
 |  |  |                                 TipUtil.show("连接中断,请重新贴合卡片"); | 
 |  |  |                                 break; |