左晓为主开发手持机充值管理机
zuoxiao
昨天 2b02b6e854a56a511588e4865ddf2c6597675329
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
package com.dayu.baselibrary.tools.nfc;
 
import android.content.Intent;
 
import com.dayu.baselibrary.bean.BaseManagerToUserCard;
import com.dayu.baselibrary.bean.BaseUserCardCard;
 
import org.jetbrains.annotations.NotNull;
 
import java.util.List;
import java.util.Map;
 
/**
 * author: zuo
 * Date: 2024-09-25
 * Time: 11:41
 * 备注:不同NFC读取的父类
 */
public abstract class BaseNfcReadHelper extends BaseNFCHelper {
 
 
    public abstract void setIntent(Intent intent);
 
    public abstract String getCradType();
 
    /**
     * 读取M1卡的全部信息
     *
     * @param callback
     */
    public abstract void getAllData(final NFCCallMapback callback);
 
 
    /**
     * 获取1扇区信息
     *
     * @param callback
     */
    public abstract void getOneSectorData(NFCCallListback callback);
 
 
    /**
     * 获取卡号
     *
     * @return
     */
    public abstract String getCardNumber();
 
    /**
     * 获取卡片类型和卡号
     *
     * @return
     */
    public  String getCradTypeAndCardNumber(){
        return getCradTypeAndCardNumber(1,0,0);
    };
 
    /**
     * 获取卡片类型和卡号
     *
     * @return
     */
    public  String getCradTypeAndCardNumber(int sectorIndex,int blockIndex,int cardTypeIndex){
        return null;
    };
 
    /**
     * 读取NFC卡的特定扇区信息
     *
     * @param a        扇区
     * @param b        块
     * @param callback
     */
    public abstract void getData(final int a, final int b, final NFCCallByteback callback);
 
 
    /**
     * 同步获取
     *
     * @return
     */
    public abstract List<byte[]> getOnesectorData();
 
 
    public  BaseUserCardCard getUserCardData(BaseUserCardCard userCardCard){
        return getUserCardData(1,userCardCard);
    };
 
    /**
     * 同步获取用户卡信息
     *
     * @return
     */
    public  BaseUserCardCard getUserCardData(int sectorIndex,BaseUserCardCard userCardCard){
        return null;
    }
 
 
    public BaseManagerToUserCard getManagerToUserCardData(BaseManagerToUserCard baseManagerToUserCard) {
        return null;
    }
 
 
 
    /**
     * 返回监听类
     */
    public interface NFCCallMapback {
        /**
         * 返回读取nfc卡的全部信息
         *
         * @param data 前面代表扇区 四个块的数据用#号隔开
         */
        void callBack(Map<String, List<byte[]>> data);
 
 
        void error(int code);
    }
 
    /**
     * 返回监听类
     */
    public interface NFCCallListback {
        /**
         * 返回读取nfc卡的全部信息
         *
         * @param data 前面代表扇区 四个块的数据用#号隔开
         */
        void callBack(List<byte[]> data);
 
 
        void error(int code);
    }
 
 
    public interface NFCCallByteback {
        /**
         * 返回读取nfc卡的全部信息
         *
         * @param data 前面代表扇区 四个块的数据用#号隔开
         */
 
        void callBack(byte[] data);
 
        void error(int code);
    }
 
 
}