身份证读卡SDK调用文档V3
发布日期:2024-01-03 12:38:06
来源:XX
浏览次数
身份证读卡SDK调用文档V3
注意事项
初始化调用一次即可
测试使用的 appid 不可以用于商用(否则后果自负)。
商用的 appid 请务必联系我司商务进行分配。
添加aar依赖
- 添加读卡SDK maven仓库
allprojects {
repositories {
google()
jcenter()
// 中软高科读卡SDK仓库
maven {
url 'https://gitee.com/cshtzrgk/read-card-sdk/raw/master/Repositorys'
}
}
}
- 依赖最新版本的读卡SDK
implementation "io.github.CshtZrgk:CshtReadCard:3.3.4"
1、读卡参数配置
ReadSettingBuilder readSettingBuilder = ReadCardManager.Companion
// 上下文
.builder(getBaseContext())
// 是否开启蜂鸣器
.buildOpenSound(true)
// 是否开启日志,第二位参数为日志保存的目录,
// 传空字符时,默认在 Android/data/包名/files/zrgkreadcardlog 下
.buildOpenLog(true, "")
// 测试使用的 appid 不可以用于商用(否则后果自负)。
// 商用的 appid 请务必联系我司商务进行分配。
.buildAppId("test")
// 设置IP与端口号(传空字符和0时,默认使用内置地址)
.buildIpAndPort("", 0)
// 设置备用服务器IP与端口号
.buildStandbyIpAndPort("", 0)
// 设置串口号、波特率(串口读卡时需要设置)
.buildSerialPort("/dev/ttyS0", 115200)
// 设置读卡类型(目前支持USB、USB_XZKJ、NFC、SERIALPORT、SAM_USB、SAM_SERIALPORT)
.buildReadCardType(ReadCardType.USB)
// 循环读卡时,是否允许返回连续相同的身份证信息(读卡类型 USB_XZKJ 时有效)
.buildResultRepeatIdCard(true)
// 照片解码类型(目前支持无照片、服务器解码、本地解码照片)
.buildDecodeImageType(DecodeImageType.LOCAL_DECODE);
ReadCardOutMethod readCardManager = readSettingBuilder.buildCreate();
2、读卡初始化方法
2.1 当选择的读卡类型是USB、NFC时,初始化方法如下:
readCardManager.readCardInit(code -> {
if (code == StatusCode.ININ_OK.getCode()) {
Log.e("mtj", "初始化成功");
} else {
// 其他错误,对照错误码查看
Log.e("mtj", "初始化失败");
}
});
2.2 当选择的读卡类型是串口时,初始化方法如下:
// 第一个参数:串口文件
// 第二个参数:波特率
readCardManager.readCardInit((new File("/dev/ttyS0"), 115200, code -> {
if (code == StatusCode.ININ_OK.getCode()) {
Log.e("mtj", "初始化成功");
} else {
// 其他错误,对照错误码查看
Log.e("mtj", "初始化失败");
}
});
- 如果已经通过 buildSerialPort 设置了串口号和波特率,也可直接使用 2.1 的初始化方法
3、用户开启读卡
- NFC读卡类型时,开启读卡方法如下:
readCardManager.readCardStart(intent, listener);
- USB、SERIALPORT读卡类型时,开启读卡方法如下:
readCardManager.readCardStart(listener);
方法参数说明
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
intent | 是 | Intent | nfc系统回调实体类 |
listener | 是 | ReadCardListener | 方法回调 |
ReadCardListener回调说明
方法名 | 参数 | 说明 |
---|---|---|
onReadIDCardSuccess(IdCardData) | IdCardData(身份证信息) | 详见身份证信息表 |
onReadICCardSuccess(icNumber: String,type:int) | icNumber(卡号) type(卡片类型) | 其他类型卡成功回调方法,详见卡类型表 |
onReadCardState(type: Int, msg: String) | type(状态码)msg(状态信息) | 失败或其他状态回调,详见错误码表 |
4、用户关闭读卡
readCardManager.readCardStop();
单独开关日志
// 是否开启日志,第二位参数为日志保存的目录,
// 传空字符时,默认在 Android/data/包名/files/zrgkreadcardlog 下
readSettingBuilder.buildOpenLog(false, "");
获取设备信息
readCardManager.readCardDeviceid();
获取固件版本号
readCardManager.readFirmwareVersion();
身份证详细信息IdCardData
字段 | 类型 | 注释 |
---|---|---|
address | string | 家庭住址 |
birthday | string | 出生日期 |
dn | string | dn码 |
endDate | string | 身份证结束时间 |
startDate | string | 身份证生效时间 |
id | string | 身份证号码 |
image | ByteArray | 照片原始信息 |
issue | string | 签发机关 |
name | string | 姓名 |
nation | string | 民族 |
sex | string | 性别 |
uuid | string | uuid |
bitmap | Bitmap | 照片 |
状态码对应表
READCARD_SUCCESS(1000, "解码成功"),
ININ_OK(1001, "初始化成功"),
ININ_FAILE(1002, "初始化失败"),
USB_NODEVICE_CODE(1003, "未发现读卡设备,请检查usb连接"),
USB_NOREADCARD_CODE(1004, "没有检测到读卡设备"),
USB_SYSYTEMREEOE_CODE(1005, "系统usb异常,请检查usb连接"),
USB_NOINTERFACE_CODE(1006, "usb没有建立连接"),
USB_NOCHANNLE_CODE(1007, "usb通道打开失败"),
USB_NOSERVICE_CODE(1008, "没有usb服务"),
SOCKET_SYS_CODE(1010, "网络通讯异常"),
LOCAL_DATA_ERROR(1018, "本地通信失败"),
UNKONW_ERROR(1020, "未知异常"),
READCARD_START(1021, "解码开始"),
READCARD_FAILE(1022, "解码失败"),
READCARD_READING(1023, "解码中"),
FIND_CARD_START(1024, "开始寻卡"),
FIND_CARD_FAIL(1025, "寻卡失败"),
FIND_CARD_SUCCESS(1026, "寻卡成功"),
READ_UID_FAILE(1031, "UID异常"),
SERIALPORT_NOINTERFACE_CODE(1036, "串口异常,请检查设备"),
SERIALPORT_DATA_ERROR(1038, "串口异常"),
其他卡类型
CARD_IC(1040, "IC卡"),
CARD_M1(1041, "M1卡"),
CARD_LCT_STUDENT(1051, "绿城通学生卡"),
CARD_LCT_NORMAL(1052, "绿城通普通卡"),
CARD_LCT_OLD(1053, "绿城通老年卡"),
CARD_SB(1060, "社保卡"),
CARD_CMCC_SIM(1070, "中国移动超级SIM卡"),
CARD_CUCC_SIM(1071, "中国联通超级SIM卡"),
CARD_CTCC_SIM(1072, "中国电信超级SIM卡")
ReadCardListener回调说明
方法名 | 参数 | 说明 |
---|---|---|
onReadIDCardSuccess(IdCardData) | IdCardData(身份证信息) | 详见身份证信息表 |
onReadICCardSuccess(icNumber: String,type:int) | icNumber(卡号) type(卡片类型) | 其他类型卡成功回调方法,详见卡类型表 |
onReadCardState(type: Int, msg: String) | type(状态码)msg(状态信息) | 失败或其他状态回调,详见错误码表 |
4、用户关闭读卡
readCardManager.readCardStop();
单独开关日志
// 是否开启日志,第二位参数为日志保存的目录,
// 传空字符时,默认在 Android/data/包名/files/zrgkreadcardlog 下
readSettingBuilder.buildOpenLog(false, "");
获取设备信息
readCardManager.readCardDeviceid();
获取固件版本号
上一篇 Uniapp原生插件调用文档
下一篇 身份证读卡SDK调用文档V4