• 廣東明創智慧科技有限公司是中國專業的身份證閱讀器供應商,
  • 專注身份證閱讀器、指紋采集儀、社保卡讀卡器、IC卡讀寫器的一家身份證應用服務平臺
服務熱線:400-0020-908 官方微信 產品標簽 網站地圖 EN

明創智慧

當前位置: 首頁 > 服務支持專區 > SDK開發包 > 正文

明創IDR-100YB云解碼藍牙身份證閱讀器Android開發包

來源:www.mingcreate.cn   標簽:云解碼 藍牙 IDR-100YB DK309   最近更新:2022-2-19

111.jpg

本開發包支持明創云解碼藍牙身份證閱讀器,支持型號IDR-100YB、DK309系列云解碼讀卡器。

點擊這里下載↓



public class IDCardData {

    public final static int ID_TYPE_CN = 1;       //身份證類型-居民身份證

    public final static int ID_TYPE_GAT = 2;      //身份證類型-港澳臺居民身份證

    public final static int ID_TYPE_FOREIGN = 3;  //身份證類型-外國人永久居留身份證


    public String Name = null;                   // 姓名

    public String Sex = null;                    //性別

    public String Nation = null;                 //名族

    public String Born = null;                   //出生

    public String Address = null;                //住址

    public String IDCardNo = null;               //身份證號

    public String GrantDept = null;              //簽發機關

    public String UserLifeBegin = null;          //有效期起始日期

    public String UserLifeEnd = null;            //有效期結束日期

    public String passport = null;               //通行證號碼

    public String issueNumber = null;            //簽發次數


    public Bitmap PhotoBmp = null;

    public byte[] fingerprintBytes = null;       //指紋數據

    public int type = 0;


    public IDCardData(byte[] idCardBytes){


        if (idCardBytes.length < 1295) {

            return;

        }


        if ( (idCardBytes[0] == (byte)0xaa)

                && (idCardBytes[1] == (byte)0xaa)

                && (idCardBytes[2] == (byte)0xaa)

                && (idCardBytes[3] == (byte)0x96)

                && (idCardBytes[4] == (byte)0x69)) {


            //int totalLen = ((idCardBytes[5] & 0xff) << 8) | (idCardBytes[6] & 0xff);

            int wordMsgBytesLen = ((idCardBytes[10] & 0xff) << 8) | (idCardBytes[11] & 0xff);

            int photoMsgBytesLen = ((idCardBytes[12] & 0xff) << 8) | (idCardBytes[13] & 0xff);


            byte[] wordMsgBytes = new byte[wordMsgBytesLen];

            byte[] photoMsgBytes = new byte[photoMsgBytesLen];


            if (idCardBytes.length == 1295) {   //不帶指紋

                System.arraycopy(idCardBytes, 14, wordMsgBytes, 0, wordMsgBytesLen);

                System.arraycopy(idCardBytes, 14 + wordMsgBytesLen, photoMsgBytes, 0, photoMsgBytesLen);

            }

            else {   //帶指紋

                int fingerprintBytesLen = ((idCardBytes[14] & 0xff) << 8) | (idCardBytes[15] & 0xff);   //指紋長度

                fingerprintBytes = new byte[fingerprintBytesLen];

                System.arraycopy(idCardBytes, 16, wordMsgBytes, 0, wordMsgBytesLen);

                System.arraycopy(idCardBytes, 16 + wordMsgBytesLen, photoMsgBytes, 0, photoMsgBytesLen);

                System.arraycopy(idCardBytes, 16 + wordMsgBytesLen + photoMsgBytesLen, fingerprintBytes, 0, fingerprintBytesLen);

            }


            //判斷身份證的類型是否為港澳臺身份證

            if (wordMsgBytes[248] == 'J') {

                type = ID_TYPE_GAT;

            }

            else if (wordMsgBytes[248] == 'I') {

                type = ID_TYPE_FOREIGN;

            }

            else {

                type = ID_TYPE_CN;

            }


            byte[] bytes;

            String str;

            int index = 0;


            //姓名

            bytes = new byte[30];

            System.arraycopy(wordMsgBytes, index, bytes, 0, bytes.length);

            index += bytes.length;

            try {

                Name = new String(bytes, "UTF_16LE");

            } catch (UnsupportedEncodingException e) {

                e.printStackTrace();

            }


            //性別

            if (wordMsgBytes[30] == 0x31) {

                Sex = "男";

            }

            else {

                Sex = "女";

            }

            index += 2;


            //名族

            if (type == ID_TYPE_CN) {

                bytes = new byte[4];

                System.arraycopy(wordMsgBytes, index, bytes, 0, bytes.length);

                try {

                    str = new String(bytes, "UTF_16LE");

                    if (str.length() == 2) {

                        int nationCode = Integer.valueOf(str, 10);

                        Nation = getNation(nationCode);

                    }

                } catch (Exception e) {

                    e.printStackTrace();

                }

            }

            index += 4;


            //出生

            bytes = new byte[16];

            System.arraycopy(wordMsgBytes, index, bytes, 0, bytes.length);

            index += bytes.length;

            try {

                Born = new String(bytes, "UTF_16LE");

            } catch (UnsupportedEncodingException e) {

                e.printStackTrace();

            }


            //住址

            bytes = new byte[70];

            System.arraycopy(wordMsgBytes, index, bytes, 0, bytes.length);

            index += bytes.length;

            try {

                Address = new String(bytes, "UTF_16LE");

            } catch (UnsupportedEncodingException e) {

                e.printStackTrace();

            }


            //身份證號

            bytes = new byte[36];

            System.arraycopy(wordMsgBytes, index, bytes, 0, bytes.length);

            index += bytes.length;

            try {

                IDCardNo = new String(bytes, "UTF_16LE");

            } catch (UnsupportedEncodingException e) {

                e.printStackTrace();

            }


            //簽發機關

            bytes = new byte[30];

            System.arraycopy(wordMsgBytes, index, bytes, 0, bytes.length);

            index += bytes.length;

            try {

                GrantDept = new String(bytes, "UTF_16LE");

            } catch (UnsupportedEncodingException e) {

                e.printStackTrace();

            }


            //有效起始日期

            bytes = new byte[16];

            System.arraycopy(wordMsgBytes, index, bytes, 0, bytes.length);

            index += bytes.length;

            try {

                UserLifeBegin = new String(bytes, "UTF_16LE");

            } catch (UnsupportedEncodingException e) {

                e.printStackTrace();

            }


            //有效結束日期

            bytes = new byte[16];

            System.arraycopy(wordMsgBytes, index, bytes, 0, bytes.length);

            index += bytes.length;

            try {

                UserLifeEnd = new String(bytes, "UTF_16LE");

            } catch (UnsupportedEncodingException e) {

                e.printStackTrace();

            }


            //港澳臺身份證

            if (type == ID_TYPE_GAT) {

                //通行證號碼

                bytes = new byte[18];

                System.arraycopy(wordMsgBytes, index, bytes, 0, bytes.length);

                index += bytes.length;

                try {

                    passport = new String(bytes, "UTF_16LE");

                } catch (UnsupportedEncodingException e) {

                    e.printStackTrace();

                }


                //簽發次數

                bytes = new byte[4];

                System.arraycopy(wordMsgBytes, index, bytes, 0, bytes.length);

                index += bytes.length;

                try {

                    issueNumber = new String(bytes, "UTF_16LE");

                } catch (UnsupportedEncodingException e) {

                    e.printStackTrace();

                }

            }


            //照片解碼

            if (photoMsgBytesLen > 0) {

                try {

                    byte[] buf=new byte[Wlt2Bitmap.IMG_LENGTH];

                    if (1 == Wlt2Bitmap.wlt2Bmp (photoMsgBytes, buf)) {

                        PhotoBmp = Wlt2Bitmap.Bgr2Bitmap (buf);

                    }

                } catch (Exception e) {

                    e.printStackTrace();

                }

            }

        }

    }


    String getNation(int code){

        switch(code){

            case 01:  return "漢";

            case 02:  return "蒙古";

            case 03:  return "回";

            case 04:  return "藏";

            case 05:  return "維吾爾";

            case 06:  return "苗";

            case 07:  return "彝";

            case 8:   return "壯";

            case 9:   return "布依";

            case 10:  return "朝鮮";

            case 11:  return "滿";

            case 12:  return "侗";

            case 13:  return "瑤";

            case 14:  return "白";

            case 15:  return "土家";

            case 16:  return "哈尼";

            case 17:  return "哈薩克";

            case 18:  return "傣";

            case 19:  return "黎";

            case 20:  return "傈僳";

            case 21:  return "佤";

            case 22:  return "畬";

            case 23:  return "高山";

            case 24:  return "拉祜";

            case 25:  return "水";

            case 26:  return "東鄉";

            case 27:  return "納西";

            case 28:  return "景頗";

            case 29:  return "柯爾克孜";

            case 30:  return "土";

            case 31:  return "達斡爾";

            case 32:  return "仫佬";

            case 33:  return "羌";

            case 34:  return "布朗";

            case 35:  return "撒拉";

            case 36:  return "毛南";

            case 37:  return "仡佬";

            case 38:  return "錫伯";

            case 39:  return "阿昌";

            case 40:  return "普米";

            case 41:  return "塔吉克";

            case 42:  return "怒";

            case 43:  return "烏孜別克";

            case 44:  return "俄羅斯";

            case 45:  return "鄂溫克";

            case 46:  return "德昂";

            case 47:  return "保安";

            case 48:  return "裕固";

            case 49:  return "京";

            case 50:  return "塔塔爾";

            case 51:  return "獨龍";

            case 52:  return "鄂倫春";

            case 53:  return "赫哲";

            case 54:  return "門巴";

            case 55:  return "珞巴";

            case 56:  return "基諾";

            case 97:  return "其他";

            case 98:  return "外國血統中國籍人士";

            default : return "";

        }

    }


    public String toString() {

        if (type == ID_TYPE_GAT) {

            return "\r\n姓        名:" + Name

                    + "\r\n性        別:" + Sex

                    + "\r\n出生日期:" + Born

                    + "\r\n住        址:" + Address

                    + "\r\n身份 證號:" + IDCardNo

                    + "\r\n簽發 機關:" + GrantDept

                    + "\r\n有  效  期:" + UserLifeBegin + "-" + UserLifeEnd

                    + "\r\n通行 證號:" + passport

                    + "\r\n簽發 次數:" + issueNumber;

        }

        else {

            return "\r\n姓        名:" + Name

                    + "\r\n性        別:" + Sex

                    + "\r\n名        族:" + Nation

                    + "\r\n出生日期:" + Born

                    + "\r\n住        址:" + Address

                    + "\r\n身份 證號:" + IDCardNo

                    + "\r\n簽發 機關:" + GrantDept

                    + "\r\n有  效  期:" + UserLifeBegin + "-" + UserLifeEnd;

        }

    }

}






(*由于產品升級或其他原因,明創IDR-100YB云解碼藍牙身份證閱讀器Android開發包產品實際參數有可能變更,以實際產品為準。本文中的所有陳述、信息和建議也不構成任何明示或暗示的擔保)

主站蜘蛛池模板: 西安泰富西玛电机_西玛电机_西安西玛电机| 徐州户外广告,标识标牌,展陈空间,精神堡垒-徐州雅努思文化发展有限公司 | 橡胶粉碎机_轮胎粉碎机_橡胶切条机_橡胶粉碎机价格_河南鑫世昌机械制造有限公司 | 上海钧尚电器有限公司 - Faulhaber电机 AMETEK pittman电机 AMETEK ROTRON军用航空风机 Exlar电动缸 MAE电机 MCG电机 CP电动工具 马头工具 AMCI驱动器 直流电机 减速箱 直流伺服电机,无刷电机,直线电机 直流防爆电机 防爆电机 汽车助力转向电机 EPS电机 faulhaber motor faulhaber gearbox NANOTEC电机 ELWOOD电机 PHYTRON电机 EXLAR伺服电动缸 高力矩、高性能直流电机,音圈电机,风机,直流风机,航空风机 | 合肥发斯特精密塑模有限公司专业精密磨具,注塑模具,精密注塑机械零件(加工制造|生产|销售|厂家) 浩通集团 国际货运 物贸一体化 中非经贸 | 无塔供水_无塔供水设备_全自动_石家庄工泉水处理设备有限公司_家用无塔供水器 | 模具配件加工厂|东莞模具配件加工|模具配件加工厂|精密塑胶模具配件|东莞市优迪精密模具制品有限公司 | 耀美软瓷施工队-13638350103-专注于软瓷施工勾缝的贴软瓷施工队 - 软瓷,软瓷施工,软瓷勾缝,软瓷怎么施工,软瓷怎么勾缝,贴软瓷,软瓷施工队 | 乳化泵-高剪切乳化机-减速机支架-乳化罐-釜底乳化机【厂家】-浙江奥盛机械 | 矿用三环链|锻打/焊接三环链|矿车万能环|三环链销子-济宁卓力工矿设备有限公司 | 重庆自考网-重庆自学考试| 一次性妇科用品_一次性医疗用品_一次性口腔器械盒_天津市双利医疗器械有限责任公司 | 离婚协议书怎么写_离婚协议书模板标准版_离婚协议书范本下载 - 离婚协议书 | 上海互动多媒体公司_上海触摸屏软件开发_上海互动投影开发_上海VR虚拟现实制作_上海全息投影制作_上海互动轨道屏制作—盟邑数字 上海浩斌信息科技有限公司RFID读写器,IC卡读卡器,手持机,数据采集终端,电力仓库管理软件开发,固定资产软件,纱管标签,试剂管理,RFID试剂柜,档案管理,档案柜,智能货架 | 围墙护栏,护栏网,围栏,锌钢栅栏,护栏网厂家--安平县沃达金属丝网制造有限公司 | 上海vi设计公司_logo设计_包装设计_品牌定位策划公司-焕识品牌设计 - | 陶瓷-超高速胶体磨-高剪切胶体磨厂家价格-上海思峻机械设备有限公司 | 加药装置-排油烟装置-工业滤水器-连云港灵动 | 湖南流水线-湖南自动化设备-湖南输送设备-湘潭市友工自动化设备有限公司 | 江苏中美铝业有限公司-【官网】| 植绒布工厂,植绒布现货批发-深圳市金峰盛植绒制品有限公司 | 企业宣传片制作公司-广告宣传片拍摄-专题片,tvc广告制作-拍摄微电影影视公司-艺虎文化 | 气泡式洗菜机-气泡喷淋清洗机-喷淋清洗风干线-诸城市迪凯工业装备有限公司 | 荧光显微镜,倒置显微镜,显微镜相机,荧光光源——广州市明美光电技术有限公司 | 商用车之家——观点有态度 热点不缺席 靠谱的商用车门户网站 | 和部长一起去出差旅全程,构建和谐上下级关系-蜜桃视频 | 襄阳燃烧器厂家-低氮燃烧器价格-河北五通道燃烧器就找襄阳市胜合燃力设备有限公司一站式服务 | 现代卓越官网-专注于pmp培训证书-pmp考试报名时间-pmp认证-项目管理pmp-ACP敏捷管理-NPDP认证 | 九江监控安装_九江安防监控_九江弱电工程公司-九江百信科技有限公司 | 吉安天卓选矿药剂有限公司| 湖南净声源环保科技有限公司是一家专业从事噪声治理和建筑声学设计生态环境综合治理服务的企业,专业从事株洲电梯隔音治理,湘潭中央空调降噪处理,衡阳邵阳冷却塔噪音治理,岳阳常德大型风机噪声隔音降噪,张家界空压机噪声治理,益阳配电房变压器噪声治理,专业郴州永州工厂企业车间噪声治理,怀化娄底专业机械设备减振降治理,武汉噪音治理隔音降噪公司,孝感噪音治理,立式球磨机的噪声控制,专业隔音降噪公司,、以及各类机械动力设备减振降噪噪声治理的公司,同时为客户提供咨询与解决方案 | 陕西筱润智能科技有限公司 干部人事智能档案柜 智能密集架 智能档案柜 部队选层文件智能柜 智能枪弹柜 财务智能档案柜 边防武警智能密集架 医院智能档案柜 部队选层文件智能柜智能枪弹柜 学校医院文件柜 企事业单位公检法智能文件柜 生产厂家-筱润智能科技有限公司 RFID射频智能密集架 全自动智能选层档案柜 智能密保柜 枪柜部队营房营具床桌椅办公家具 办公用品档案盒设备货架 全自动智能选层柜生产厂家-筱润智能科技有限公司 | 造雪机|人工造雪机|造雪机价格|造雪机厂家-河南晋安机械科技有限公司 | 智能搅拌锅_食品搅拌锅_多功能搅拌锅 - 青岛环速科技有限公司 | 盆底肌修复仪器-产后康复脉冲磁训练仪-南京佳澜健康管理有限公司 | 中国国际精细化工展览会—官网| 郑州办公家具厂_河南办公家具厂_河南办公家具-河南华诺家具 | 私人家庭影院装修_别墅家庭影院设计_家庭影院价格方案-广州家庭影院定制公司 | 明星代言,明星代言费,明星代言价格查询-良策明星经纪公司 | 烟囱防腐_维修_刷航标_美化_加固_刷色环 | 菏泽代理公司|菏泽代办公司|菏泽公司注册|公司变更注销 |