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

身份证读卡SDK调用文档V4

发布日期:2024-01-03 12:39:18 来源:zrgk 浏览次数
身份证读卡SDK调用文档V4

注意事项

初始化调用一次即可

测试使用的 appid 不可以用于商用(否则后果自负)。
商用的 appid 请务必联系我司商务进行分配。

添加aar依赖

  • 添加读卡SDK maven仓库
allprojects {
    repositories {
        google()
        jcenter()
        // 中软高科读卡SDK仓库
        maven {
            url 'https://gitee.com/cshtzrgk/read-card-sdk/raw/master/Repositorys'
        }
    }
}
  • 依赖最新版本的读卡SDK
// 中软核心读卡SDK(必须)
implementation "io.github.CshtZrgk:CshtReadCard:4.1.0"
implementation "io.github.CshtZrgk:mqttService:1.0.0"

// 电子护照读取(可选,不需要可以不添加依赖)
implementation 'io.github.CshtZrgk:ePassport:1.0.1'
// 中软 OCR 识别护照机读码(可选,不需要可以不添加依赖。也可自由选择自己或其他第三方OCR库)
// 中软 OCR 库使用方法,详见文档底部:OCR使用方法 
implementation 'io.github.CshtZrgk:ocr-android:1.0.1'

1、读卡参数配置

ReadSettingBuilder readSettingBuilder = ReadCardManager
                // 上下文
                .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、NFC_PASSPORT、
                // 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,msg) -> {
                if (code == StatusCode.ININ_ING.getCode()) {
                    Log.e("mtj", "初始化中");
                } else if (code == StatusCode.ININ_OK.getCode()) {
                    Log.e("mtj", "初始化成功");
                } else {
                    // 其他错误,对照错误码查看
                    Log.e("mtj", "初始化失败");
                }
            });

2.2 当选择的读卡类型是串口时,初始化方法如下:

// 第一个参数:串口文件
// 第二个参数:波特率
readCardManager.readCardInit((new File("/dev/ttyS0"), 115200, (code,msg) -> {
                if (code == StatusCode.ININ_ING.getCode()) {
                    Log.e("mtj", "初始化中");
                } else if (code == StatusCode.ININ_OK.getCode()) {
                    Log.e("mtj", "初始化成功");
                } else {
                    // 其他错误,对照错误码查看
                    Log.e("mtj", "初始化失败");
                }
            });
  • 如果已经通过 buildSerialPort 设置了串口号和波特率,也可直接使用 2.1 的初始化方法

3、用户开启读卡

  • NFC读卡类型时,开启读卡方法如下:
readCardManager.readCardStart(intent, listener);
  • NFC_PASSPORT读电子护照类型时,开启读卡方法如下:
readCardManager.readPassportStart(intent, documentNumberStr, dateOfBirthStr, dateOfExpiryStr, listener);
  • USB、SERIALPORT读卡类型时,开启读卡方法如下:
readCardManager.readCardStart(listener);

方法参数说明

参数名 必选 类型 说明
intent Intent nfc系统回调实体类
documentNumberStr String 9位护照号码
dateOfBirthStr String 生日,格式 yyMMdd 如:900203
dateOfExpiryStr String 护照有效期,格式 yyMMdd 如:290506
listener ReadCardListener 方法回调

ReadCardListener回调说明

方法名 参数 说明
onReadIDCardSuccess(IdCardData) IdCardData(身份证信息) 详见身份证信息表
onReadICCardSuccess(icNumber: String,type:int) icNumber(卡号) type(卡片类型) 其他类型卡成功回调方法,详见卡类型表
onReadCardState(type: Int, msg: String) type(状态码)msg(状态信息) 失败或其他状态回调,详见错误码表
onReadPassportSuccess(EPassportData) EPassportData(电子护照信息) 详见电子护照信息表

4、用户关闭读卡

readCardManager.readCardStop();

单独开关日志

// 是否开启日志,第二位参数为日志保存的目录,
// 传空字符时,默认在 Android/data/包名/files/zrgkreadcardlog 下
readSettingBuilder.buildOpenLog(false, "");

获取设备信息

readCardManager.readCardDeviceid();

获取固件版本号

readCardManager.readFirmwareVersion();

身份证详细信息IdCardData

字段 类型 注释
type int 1080:中国居民身份证
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 照片

外国人永久居住证IdCardData:

字段 类型 注释
type int 1081:外国人永久居住证
birthday string 出生日期
dn string dn码
endDate string 身份证结束时间
startDate string 身份证生效时间
id string 身份证号码
image ByteArray 照片原始信息
issue string 签发机关
sex string 性别
uuid string uuid
bitmap Bitmap 照片
nameChinese string 中文姓名
nameEnglish string 英文姓名
nameEnglishAdd string 英文姓名备用
nationlity string 国籍
cardVersion string 卡版本号
cardType string 卡类型
historicalNumber string 既往版本证件号码关联项
renewalNumber string 换证次数

港澳台居住证详细信息IdCardData

字段 类型 注释
type int 1082:港澳台居住证
address string 家庭住址
birthday string 出生日期
dn string dn码
endDate string 身份证结束时间
startDate string 身份证生效时间
id string 身份证号码
image

上一篇 身份证读卡SDK调用文档V3

下一篇 最后一页