左晓为主开发手持机充值管理机
zuoxiao
2023-11-15 3502384043c282226c0dbc90a191806e007f1d17
添加nfc读取连接中断的处理
4个文件已修改
65 ■■■■ 已修改文件
app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/recharge/tools/NfcReadHelper.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/recharge/utils/MyCommon.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java
@@ -197,9 +197,9 @@
                        }
                        @Override
                        public void error() {
                        public void error(int code) {
                            Message message = new Message();
                            message.what = ERROR;
                            message.what = code;
                            handler.sendMessage(message);
                        }
                    });
@@ -322,7 +322,7 @@
                        }
                        @Override
                        public void error() {
                        public void error(int code) {
                            Message message = new Message();
                            message.what = ERROR;
                            handler.sendMessage(message);
app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java
@@ -56,7 +56,7 @@
    private static final int CONFIGURATION_POWER_CARD = 9;
    private static final int PASS_WORD_CRAD = 10;
    private static final int ERROR = -1;
    volatile UserCard userCard;
    ActivityRedCardBinding redCardBinding;
@@ -151,16 +151,16 @@
                            }
                        } else {
                            message.what = ERROR;
                            message.what = MyCommon.ERROR;
                        }
                        handler.sendMessage(message);
                    }
                    @Override
                    public void error() {
                    public void error(int code) {
                        Message message = new Message();
                        message.what = ERROR;
                        message.what = code;
                        handler.sendMessage(message);
                    }
                });
@@ -224,6 +224,10 @@
                    redCardBinding.readCardTypeTV.setText("当前为密码卡");
                    stopAnim();
                    break;
                case MyCommon.ERROR_MOVE:
                    stopAnim();
                    ToastUtil.show("连接中断,请重新贴合卡片");
                    break;
                default:
                    ToastUtil.show(ReadCardAcitivy.this, "卡片无法识别");
                    stopAnim();
app/src/main/java/com/dayu/recharge/tools/NfcReadHelper.java
@@ -5,6 +5,8 @@
import android.nfc.Tag;
import android.nfc.tech.MifareClassic;
import com.dayu.recharge.utils.MyCommon;
import java.io.IOException;
import java.util.ArrayList;
@@ -42,22 +44,6 @@
        }
        return helper;
    }
    /**
     * 设置NFC卡的密码
     *
     * @param str
     * @return
     */
//    public NfcReadHelper setPassword(String str) {
//
//        if (null != str && (str.length() <= 6)) {
//            for (int i = 0; i < str.length(); i++) {
//                bytes[i] = (byte) str.charAt(i);
//            }
//        }
//        return helper;
//    }
    /**
     * 读取NFC卡的全部信息
@@ -108,15 +94,18 @@
                        if (flag) {
                            callback.callBack(map);
                        } else {
                            callback.error();
                            callback.error(MyCommon.ERROR);
                        }
                    } catch (IOException e) {
                        callback.error(MyCommon.ERROR_MOVE);
                        e.printStackTrace();
                    } catch (Exception e) {
                        callback.error();
                        callback.error(MyCommon.ERROR);
                        e.printStackTrace();
                    } finally {
                        try {
                            mfc.close();
                        } catch (IOException e) {
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
@@ -143,12 +132,12 @@
                        mfc.connect();
                        int count = mfc.getSectorCount();
                        if (a < 0 || a > count - 1) {
                            callback.error();
                            callback.error(MyCommon.ERROR);
                            return;
                        }
                        int bCount = mfc.getBlockCountInSector(a);
                        if (b < 0 || b > bCount - 1) {
                            callback.error();
                            callback.error(MyCommon.ERROR);
                            return;
                        }
@@ -174,11 +163,13 @@
                            byte[] data = mfc.readBlock(bIndex + b);
                            callback.callBack(data);
                        } else {
                            callback.error();
                            callback.error(MyCommon.ERROR);
                        }
                    } catch (Exception e) {
                        callback.error();
                    } catch (IOException e) {
                        callback.error(MyCommon.ERROR_MOVE);
                        e.printStackTrace();
                    } catch (Exception e) {
                        callback.error(MyCommon.ERROR);
                    } finally {
                        try {
                            mfc.close();
@@ -203,7 +194,7 @@
        void callBack(Map<String, List<byte[]>> data);
        void error();
        void error(int code);
    }
    public interface NFCCallByteback {
@@ -215,7 +206,7 @@
        void callBack(byte[] data);
        void error();
        void error(int code);
    }
}
app/src/main/java/com/dayu/recharge/utils/MyCommon.java
@@ -8,6 +8,10 @@
 */
public class MyCommon {
    public static final int ERROR = -1;
    //连接中断 提示用户重新连接或提示用户重新靠近卡片
    public static final int ERROR_MOVE = -2;
    /**
     * 用户刷卡开泵前
     */