




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Android平臺(tái)名片識(shí)別開(kāi)發(fā)手冊(cè)文檔版本:2.2.0.3起草時(shí)間:2015年10月地址:北京市海淀區(qū)北四環(huán)西路9號(hào)銀谷大廈16層1609室電話:(010)62800286/62800250網(wǎng)址:文檔修改記錄:日期修改說(shuō)明變更人審核人2015-10初稿張志朋2016-01追加掃描功能集成薛尚2016-01優(yōu)化開(kāi)發(fā)手冊(cè)黃震2016-06更改識(shí)別動(dòng)畫(huà)鄒旭黃 17目錄1 演示程序安裝與激活21.1 安裝21.2 Android版本21.3 激活方式介紹22 拍攝注意事項(xiàng)32.1 一般要求32.2 對(duì)拍攝圖像的要求33 接口概述與集成說(shuō)明34 調(diào)用識(shí)別Activity44.1 識(shí)別參數(shù)說(shuō)明44.2 識(shí)
2、別返回值說(shuō)明54.3示例代碼64.3.1識(shí)別調(diào)用代碼64.3.2接收返回值代碼85、序列號(hào)在線激活方式集成步驟95.1 將assets文件夾、lib文件夾、libs文件夾全部按照下圖的目錄結(jié)構(gòu)復(fù)制到集成的項(xiàng)目中:95.3 授權(quán)服務(wù)的代碼集成(具體變量的定義請(qǐng)?jiān)斠?jiàn)ImageChooser.java,該代碼需在識(shí)別之前調(diào)用)125.4進(jìn)入拍照識(shí)別界面代碼:135.5結(jié)果解析代碼135.6 結(jié)束136. 項(xiàng)目授權(quán)方式的集成步驟146.1用戶向北京文通科技有限公司的銷售提供需要綁定的一些參數(shù),然后銷售會(huì)給用戶一個(gè)項(xiàng)目授權(quán)文件(authmode.lsc);然后將assets文件夾、lib文件夾、libs
3、文件夾全部按照下圖的目錄結(jié)構(gòu)復(fù)制到集成的項(xiàng)目中并將新得到的authmode.lsc復(fù)制進(jìn)集成項(xiàng)目中的assets文件夾內(nèi):146.2打開(kāi)要集成的項(xiàng)目的AndroidManifest.xml文件,將以下權(quán)限、相應(yīng)的service和activity加入其中:156.3進(jìn)入拍照識(shí)別界面代碼:176.4更改開(kāi)發(fā)碼和對(duì)應(yīng)的authmode.lsc文件176.5結(jié)果解析代碼186.6結(jié)束181 演示程序安裝與激活1.1 安裝安裝中安名片演示程序BuCard_sample_sdk.apk。1.2 Android版本支持Android2.3 6.01.3 激活方式介紹在首次調(diào)用時(shí)提供序列號(hào)或激活文件進(jìn)行激活。
4、1、在線序列號(hào)激活方式。由北京文通科技有限公司提供含有序列號(hào)的Excel文件,用戶在調(diào)用程序中指定sn參數(shù)即用于該設(shè)備的某序列號(hào),首次調(diào)用識(shí)別時(shí)設(shè)備須聯(lián)網(wǎng)??芍付ń壎ㄔO(shè)備deviceid或綁定SIM卡序號(hào)。默認(rèn)綁定deviceid。2、離線文件激活方式。用戶先提供北京文通科技有限公司含有deviceid或androidid的Excel文件(第一列為deviceid,第二列為androidid),然后北京文通科技有限公司提供對(duì)應(yīng)設(shè)備的激活文件壓縮包,壓縮包中激活文件的 數(shù)目與設(shè)備數(shù)目一致,以deviceid_cp.txt命名,用戶在調(diào)用程序中指定authfile參數(shù)即激活文件的路徑和名稱,首次調(diào)
5、用時(shí)設(shè)備無(wú)需聯(lián)網(wǎng)。如authfile參數(shù)為null或等于”時(shí),默認(rèn)激活文件路徑為根目錄下的deviceid_cp.txt,當(dāng)激活文件存在時(shí)做此激活操作。3、項(xiàng)目授權(quán)方式。項(xiàng)目授權(quán)文件中限制如下內(nèi)容:開(kāi)發(fā)碼參數(shù)、用戶程序包名、識(shí)別核心版本號(hào)、使用截止時(shí)間、用戶程序名稱、用戶公司名稱;開(kāi)發(fā)碼與調(diào)用識(shí)別時(shí)傳遞的devcode參數(shù)比對(duì),開(kāi)發(fā)碼由北京文通科技有限公司與項(xiàng)目授權(quán)文件一并提供;程序包名與AndroidMenifest.xml中package比對(duì);使用截止時(shí)間與當(dāng)前系統(tǒng)時(shí)間比對(duì);授權(quán)文件中核心版本號(hào)與底層核心版本號(hào)比對(duì), 默認(rèn)限制前兩位;項(xiàng)目名稱與strings.xml中app_name比對(duì);
6、公司名稱與strings.xml中company_name比對(duì);項(xiàng)目授權(quán)文件需放入項(xiàng)目assets文件夾中。注意:如果使用1或2 所列的激活方式,請(qǐng)選擇指定sn參數(shù)或authfile參數(shù) ,不要同時(shí)指定sn參數(shù)和authfile參數(shù),否則將只按1的方式進(jìn)行激活,設(shè)置此兩個(gè)參數(shù)請(qǐng)參見(jiàn)下文代碼示例。*采用項(xiàng)目授權(quán)無(wú)需調(diào)用驗(yàn)證授權(quán)服務(wù)2 拍攝注意事項(xiàng) 目前支持的JPEG圖像的分辨率為2048*1536像素及以下,1600*1200及以上。2.1 一般要求圖像文字清晰,人眼可辨別;對(duì)比度、亮度適中;2.2 對(duì)拍攝圖像的要求拍攝時(shí)做好聚焦,以免圖像模糊不清;盡量不要使拍攝角度傾斜過(guò)大,以免造成圖像變形成
7、梯形;3 接口概述與集成說(shuō)明用戶可以調(diào)用Activity方式集成識(shí)別功能,識(shí)別Activity只支持JPG圖片格式,用戶可以通過(guò)調(diào)用函數(shù)的方式設(shè)置識(shí)別參數(shù),詳情見(jiàn)后面章節(jié)。注意將“BuCard_sample_sdk集成所需文件”文件夾下的所有內(nèi)容放到Android項(xiàng)目的根目錄下;注意拷貝assets、lib、libs及res的內(nèi)容到您的項(xiàng)目中;注意將AndroidManifest.xml里面的內(nèi)容和res/values/strings.xml的內(nèi)容合并到項(xiàng)目相關(guān)文件中;如果采用序列號(hào)激活方式綁定設(shè)備,請(qǐng)將“序列號(hào)” 文件夾中的相關(guān)文件替換到項(xiàng)目中;4 調(diào)用識(shí)別Activity4.1 識(shí)別參數(shù)說(shuō)
8、明識(shí)別Activity具有如下參數(shù):類型名稱說(shuō)明示例 RecogService.byteDataType識(shí)別模式通過(guò)此參數(shù)可以通知核心是使用拍照識(shí)別還是掃描識(shí)別的模式進(jìn)行初始化識(shí)別函數(shù)RecogService.byteDataType=1為拍照模式;RecogService.byteDataType=0為掃描模式byte nv21dataNv21格式 的數(shù)組該參數(shù)通常用于掃描識(shí)別模式中,在拍照識(shí)別模式中可將其置為空例如null或dataSize size相機(jī)預(yù)覽尺寸該參數(shù)通常用于掃描識(shí)別模式中,在拍照識(shí)別模式中可將其置為空例如null或camera.getParameters().getPre
9、viewSize()int width,int height掃描識(shí)別模式下的預(yù)覽圖像的寬和高該參數(shù)通常用于掃描識(shí)別模式中,在拍照識(shí)別模式中可將其置為0例如0或其他整型String picturePath拍照模式下的識(shí)別圖像存儲(chǔ)的物理路徑該參數(shù)通常用于拍照識(shí)別模式中,在掃描識(shí)別模式中可將其置為“”例如“”或其他數(shù)值4.2 識(shí)別返回值說(shuō)明識(shí)別Activity具有如下返回值:類型名稱說(shuō)明備注intReturnAuthority授權(quán)驗(yàn)證結(jié)果0成功;-1001 讀jpg圖片錯(cuò)誤,可能是圖片超過(guò)2048*1536分辨率-10001 未調(diào)用初始化函數(shù)-10003 沒(méi)有激活或激活碼校驗(yàn)失敗-10004 指定序
10、列號(hào)為null或-10005 未連接到服務(wù)器-10006 獲取激活碼失敗或未連接到服務(wù)器-10007 授權(quán)服務(wù)器無(wú)此序列號(hào)-10008 序列號(hào)已使用-10009 無(wú)法創(chuàng)建授權(quán)文件-10010 校驗(yàn)激活碼失敗-10011 其他錯(cuò)誤-10012 未激活-10015 激活文件校驗(yàn)失敗-10401 開(kāi)發(fā)碼錯(cuò)誤或未找到authmode.lsc文件-10402 設(shè)備型號(hào)未授權(quán)-10500 未檢測(cè)到SIM卡-1008 未讀到TF卡;-1005 TF卡授權(quán)模式下使用了非TF卡授權(quán)的動(dòng)態(tài)庫(kù);20 所插TF中的licenselicense.dat授權(quán)文件未找到或不匹配;或非TF卡授權(quán)模式下使用了TF卡模式動(dòng)態(tài)庫(kù);
11、-10600 其他錯(cuò)誤;-10601 開(kāi)發(fā)碼錯(cuò)誤;-10602 程序包名錯(cuò)誤;-10603 截止時(shí)間過(guò)期;-10604 核心版本號(hào)錯(cuò)誤;-10605 項(xiàng)目名稱錯(cuò)誤; -10606 公司名稱錯(cuò)誤。IntReturnRecogBuCard識(shí)別返回值0成功IntReturnInitBUCard初始化函數(shù)返回值A(chǔ)rrayListHashMaplist = (ArrayListHashMap) bunt(list)t(0);for (int i = 0; i list.size(); i+) HashMap map = list.get(i);str += map.get(Name) + : + map
12、.get(Val) + n;4.3示例代碼4.3.1識(shí)別調(diào)用代碼(在調(diào)用此方法前請(qǐng)先設(shè)置RecogService.byteDataType的值)public void startActivityRecog(byte nv21data, Size size, int width,int height, String picturePath) String picPathString = ;try if (RecogService.byteDataType = 0) / 存取識(shí)別圖片 startpicPathString = path + card_full.jpg;File file = new
13、 File(path);if (!file.exists()file.mkdirs();File file1 = new File(picPathString);Utils.freeFileLock(new FileOutputStream(picPathString).getChannel().tryLock(), file1);YuvImage yuvimage = new YuvImage(nv21data, ImageFormat.NV21,size.width, size.height, null);ByteArrayOutputStream baos = new ByteArray
14、OutputStream();pressToJpeg(new Rect(int) (size.width * 0.15),(int) (size.height - 0.41004673 * size.width) / 2,(int) (size.width * 0.8),(int) (size.height + 0.41004673 * size.width) / 2), 80,baos);FileOutputStream outStream;outStream = new FileOutputStream(picPathString);outStream.write(baos.toByteA
15、rray();outStream.close();baos.close();/ 存取識(shí)別圖片 endRecogService.recogBytes = nv21data; else if (RecogService.byteDataType = 1) RecogService.byteDataType = 1;picPathString = picturePath;/ else if (RecogService.byteDataType = 2) / RecogService.byteDataType = 2;/ picPathString = picturePath;/ String cut
16、PicturePath = path + Utils.pictureName() + _cut.jpg;Intent intent = new Intent(kernel.bucard);Bundle bundle = new Bundle();bundle.putString(lpFileName, picPathString);/ 指定的圖像路徑,預(yù)覽掃描識(shí)別時(shí),該參數(shù)代表動(dòng)畫(huà)圖片路徑bundle.putString(devcode, NameCardAuthParamters.DEVCODE);bundle.putInt(recogBytes_width, width);/預(yù)覽圖像的寬b
17、undle.putInt(recogBytes_height, height);/預(yù)覽圖像的高bundle.putString(returntype, withvalue);/ 返回值傳遞方式withvalue帶參數(shù)的傳值方式(onActivityResult方式返回識(shí)別結(jié)果)bundle.putBoolean(isSaveCut, false);/是否保存裁切圖片bundle.putString(cutPicturePath, cutPicturePath);/ 指定的圖像路徑,預(yù)覽掃描識(shí)別時(shí),該參數(shù)代表動(dòng)畫(huà)圖片路徑intent.putExtras(bundle);(Activity) co
18、ntext).startActivityForResult(intent, 8); catch (Exception e) Toast.makeText(context,context.getString(R.string.noFoundProgram)+ kernel.bucard, 0).show();e.printStackTrace();4.3.2接收返回值代碼protected void onActivityResult(int requestCode, int resultCode, Intent data) if (requestCode = 8 & resultCode = R
19、ESULT_OK) / 讀識(shí)別返回值Bundle bun = data.getBundleExtra(GetRecogResult);/識(shí)別信息Intent intent = new Intent(CameraActivity.this,BucardRunner.class);intent.putExtra(RecogValue, bun);intent.putExtra(camera, isAutoRecog);startActivity(intent);CameraActivity.this.finish();overridePendingTransition(R.anim.zoomin,
20、 R.anim.zoomout);5、序列號(hào)在線激活方式集成步驟5.1 將assets文件夾、lib文件夾、libs文件夾全部按照下圖的目錄結(jié)構(gòu)復(fù)制到集成的項(xiàng)目中:先選中所有的jar包,然后add Path,右鍵lib文件夾點(diǎn)擊Buid Path選項(xiàng)并選擇config buid Path選項(xiàng),點(diǎn)擊Order and Export選項(xiàng),ksoap2-android-assembly-2.4-jar-with-dependencies.jar、pki.jarandroid_auth.jar、bcprov-ext-jdk15-146.jar、android_auth.jar、bucard_sdk.j
21、ar、等全部勾選并點(diǎn)擊“確定”按鈕,如圖:將res的內(nèi)容合并到您的項(xiàng)目中;注意將AndroidManifest.xml里面的內(nèi)容和res/values/strings.xml的內(nèi)容合并到項(xiàng)目相關(guān)文件中5.2 打開(kāi)要集成的項(xiàng)目的AndroidManifest.xml文件,將以下權(quán)限、相應(yīng)的service和activity加入其中: 注冊(cè)時(shí)請(qǐng)注意更換包名!5.3 授權(quán)服務(wù)的代碼集成(具體變量的定義請(qǐng)?jiān)斠?jiàn)ImageChooser.java,該代碼需在識(shí)別之前調(diào)用) 授權(quán)服務(wù)的定義:(用戶需將從銷售手中獲得的25位序列號(hào)替換sn, ReturnAuthority變量為授權(quán)服務(wù)成功與否的標(biāo)志,如果為0則
22、證明授權(quán)成功)public ServiceConnection authConn = new ServiceConnection() Overridepublic void onServiceDisconnected(ComponentName name) authBinder = null;Overridepublic void onServiceConnected(ComponentName name, IBinder service) authBinder = (AuthService.authBinder) service;try AuthParameterMessage apm =
23、new AuthParameterMessage();/ apm.datefile = ;/預(yù)留apm.devcode =NameCardAuthParamters.DEVCODE;/5YYX5LQS5PAH6YCapm.sn = ;/ WU9H5VSSDVXYB6KYYI52YYICW /apm.isCheckDevType=true;/強(qiáng)制驗(yàn)證設(shè)備型號(hào)開(kāi)關(guān)ReturnAuthority = authBinder.getBuCardAuth(apm); catch (Exception e) Toast.makeText(getApplicationContext(), getString(
24、R.string.license_verification_failed),Toast.LENGTH_LONG).show(); finally if (authBinder != null) unbindService(authConn);授權(quán)服務(wù)的調(diào)用:(在Activity的onResume()中調(diào)用,必須在進(jìn)入拍照界面前進(jìn)行調(diào)用)Intent authIntent = new Intent(ImageChooser.this, AuthService.class);bindService(authIntent, authConn, Service.BIND_AUTO_CREATE);5.
25、4進(jìn)入拍照識(shí)別界面代碼:5.4.1手動(dòng)拍照識(shí)別請(qǐng)注意將CameraActivity添加到您的項(xiàng)目中Intent intent = new Intent();Intent intent = new Intent();intent.setClass(ImageChooser.this, CameraActivity.class);intent.putExtra(camera, false);ImageChooser.this.finish();startActivity(intent);overridePendingTransition(R.anim.zoomin, R.anim.zoomout)
26、;5.4.2掃描自動(dòng)識(shí)別Intent intent = new Intent();intent.setClass(ImageChooser.this, CameraActivity.class);intent.putExtra(camera,true);ImageChooser.this.finish();startActivity(intent);overridePendingTransition(R.anim.zoomin, R.anim.zoomout);5.5結(jié)果解析代碼結(jié)果解析識(shí)別代碼請(qǐng)?jiān)斠?jiàn)此方法:readRecogResult()此方法位于BucardRunner.java中5.6 結(jié)束如果通過(guò)以上步驟進(jìn)行集成,并出現(xiàn)相應(yīng)的集成問(wèn)題,請(qǐng)及時(shí)聯(lián)系技術(shù)開(kāi)發(fā)人員6. 項(xiàng)目授權(quán)方式的集成步驟6.1用戶向北京文通科技有限公司的銷售提供需要綁定的一些參數(shù),然后銷售會(huì)給用戶一個(gè)項(xiàng)目授權(quán)文件(authmode.lsc);然后將assets文件夾、lib文件夾、libs文件夾全部按照下圖的目錄結(jié)構(gòu)復(fù)制到集成的項(xiàng)目中并將新得到的authmode.lsc復(fù)制進(jìn)集成項(xiàng)目中的assets文件夾內(nèi):先選中所有的jar包,然后add Path,右鍵lib文件夾點(diǎn)擊Buid Path選項(xiàng)并選擇config buid Path選項(xiàng),點(diǎn)擊Order and Export選項(xiàng),將android_auth.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)備監(jiān)測(cè)專項(xiàng)管理制度
- 設(shè)備設(shè)施外觀管理制度
- 設(shè)計(jì)保安門崗管理制度
- 設(shè)計(jì)服務(wù)公司管理制度
- 評(píng)估公司人員管理制度
- 診所就診登記管理制度
- 診所門衛(wèi)宿舍管理制度
- 試驗(yàn)現(xiàn)場(chǎng)檢測(cè)管理制度
- 財(cái)務(wù)資金歸集管理制度
- 賬務(wù)處理流程管理制度
- 全省一體化政務(wù)平臺(tái)AI大模型應(yīng)用方案
- 醫(yī)院負(fù)面清單管理制度
- 11.3 一元一次不等式組 課件 2024-2025學(xué)年人教版初中數(shù)學(xué)七年級(jí)下冊(cè)
- DZ/T 0220-2006泥石流災(zāi)害防治工程勘查規(guī)范
- 2025四川瀘州交通物流集團(tuán)有限公司及下屬公司招聘12人筆試參考題庫(kù)附帶答案詳解析
- 2025英語(yǔ)ab級(jí)考試試題及答案
- 2025屆江蘇省徐州市名校七下數(shù)學(xué)期末達(dá)標(biāo)檢測(cè)試題含解析
- 大連海事大學(xué)育鯤輪電機(jī)員培訓(xùn)課件詳解
- 廣東省廣州市越秀區(qū)2020-2021學(xué)年七年級(jí)下學(xué)期期末英語(yǔ)試題(含答案)
- GB/T 45577-2025數(shù)據(jù)安全技術(shù)數(shù)據(jù)安全風(fēng)險(xiǎn)評(píng)估方法
- 中國(guó)啤酒籃行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告2025-2028版
評(píng)論
0/150
提交評(píng)論