見過掃描身份證信息的安卓Android平板電腦?見面拉
平板廣泛應用於銀行、公安移動辦公、警務通、企業保安、訪客登記等場合。內置身份證讀卡器功能使身份證信息的獲取變得如此便捷容易,二代身份證內部信息瞬間就能被讀取到平板電腦內,其中包括了姓名、身份證號碼、發卡單位等全部身份證信息,身份證上的照片也能如實讀出。
二代證讀取功能:內置中華人民共和國第二代公民身份證讀取模塊,提供開發源碼,全面滿足二次開發
實現讀取二代身份證信息的客戶端程序
該例程主要實現讀取二代身份證信息,
操作過程:打開已安裝完成的apk應用,將身份證放到讀卡區域,點擊掃描按鈕等待信息反饋到用戶界面中.
應用程序編程接口
apps.java 中接口解釋及使用說明
static public native int Serialread(byte[] data,byte[] samid);通過串口讀取身份證模組返回讀取原始信息,讀取到的是字節數組存放在 data數組中未經解碼,同時完成密鑰數組(samid)的初始化
static{ System.loadLibrary("Serial_apps"); }
此靜態塊完成對libSerial_apps.so庫的加載
ScanIDCardActivity.Java 中使用到和讀取身份證相關接口解釋和說明
Int IDCradReaderSDK.wltInit("/data/wltlib"); 讀取身份證模組的數字認證證書,返回值為0時說明以正確認證身份證模組
Int apps.Serialread(wltdata,licdata);
參數:
byte[] wltdata 通過串口將讀取到的原始信息存放到字節數組中,未解密.
byte[] licdata 存放讀取信息時使用到的密鑰數據.
返回值:
1 正取讀取到身份證信息
-1 模組發送數據失敗
-2 數據接收失敗
-3 鎖定身份證失敗
-4 發送讀身份證信息失敗
-5 讀取身份證信息失敗,串口丟失數據
Int IDCReaderSDK.wltGetBMP(wltdata,licdata);
參數:
byte[] wltdata 通過串口讀取身份證信息並進行數據解密(通過密鑰數組licdata)
byte[] licdata 通過該數據中數據進行身份證原始信息解密
返回值:
1 正確通過密鑰將原始身份證信息解密
其它值 沒有正確將原始數據解密
Bitmap BitmapFactory.decodeFile("/data/wltlib/zp.bmp");
將正確解密后的身份證圖片信息獲取到,返回對象為
String name = new String(data,14,30,”UnicodeLittleUnmarked”);
參數:
第一個參數data 讀取到的身份證信息字節數據
第二個參數14 “name”在字節數組中的起始位置
第三個參數30 “name”在字節數組中的終止位置
第四個參數 相應的編碼方式



作者:歐宏遠
博客:http://www.cnblogs.com/pdasoft
日期:2012年9月26日
