您所在的位置首页>纯软件授权 > 安卓手机 >
安卓手机
安卓手机

身份证读卡SDK调用文档V3

发布日期:2024-01-03 12:38:06 来源:zrgk 浏览次数

身份证读卡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