调用百度ORC识别
sdk的包含的UI部分和demo工程以Android Studio方式提供,sdk部分則可以較方便的集成到eclipse工程中。
前往SDK下載頁(yè)面下載Android SDK壓縮包。
(必須)將下載包libs目錄中的ocr-sdk.jar文件拷貝到工程libs目錄中,并加入工程依賴。
(必須)將libs目錄下armeabi,arm64-v8a,armeabi-v7a,x86文件夾按需添加到android studio工程src/main/jniLibs目錄中, eclipse用戶默認(rèn)為libs目錄。
(可選)如果需要使用UI模塊,請(qǐng)?jiān)贏ndroid studio中以模塊方式導(dǎo)入下載包中的ocr-ui文件夾。
為您自己的工程添加必要的權(quán)限
如果您在自己的工程中集成SDK,請(qǐng)確保已經(jīng)在工程AndroidManifest.xml文件中添加如下權(quán)限:
Proguard配置
如果您在自己的工程中集成SDK,請(qǐng)?jiān)赑roguard配置文件中增加, 防止release發(fā)布時(shí)打包報(bào)錯(cuò):
身份驗(yàn)證與安全
百度AI開(kāi)放平臺(tái)使用OAuth2.0授權(quán)調(diào)用開(kāi)放API,調(diào)用API時(shí)必須在URL中帶上accesss_token參數(shù)。AccessToken可用AK/SK或者授權(quán)文件的方式獲得。安卓SDK中已經(jīng)為您做了封裝,當(dāng)初始化完畢后,所有API請(qǐng)求會(huì)自動(dòng)帶上accesss_token參數(shù),您也可以通過(guò)initAccessTokenWithAkSk,initAccessToken這兩個(gè)函數(shù)的回調(diào)中查看。
OCR Android SDK提供了以下2種AccessToken管理方法.
API Key / Secret Key
此種身份驗(yàn)證方案使用AK/SK獲得AccessToken。
雖然SDK對(duì)網(wǎng)絡(luò)傳輸?shù)拿舾袛?shù)據(jù)進(jìn)行了二次加密,但由于AK/SK是明文填寫(xiě)在代碼中,在移動(dòng)設(shè)備中可能會(huì)存在AK/SK被盜取的風(fēng)險(xiǎn)。有安全考慮的開(kāi)發(fā)者可使用第二種授權(quán)方案。
使用步驟:
1.在管理控制臺(tái)中新建一個(gè)OCR應(yīng)用,并且請(qǐng)?zhí)顚?xiě)正確的包名
2.在***應(yīng)用詳情***頁(yè)面查看并復(fù)制應(yīng)用的Api Key(簡(jiǎn)稱AK) 和 Secret Key(簡(jiǎn)稱SK),初始化OCR單例:(要在你調(diào)用的頁(yè)面初始化)
由于AK/SK是明文填寫(xiě)在代碼中,在移動(dòng)設(shè)備中可能會(huì)存在AK/SK被盜取的風(fēng)險(xiǎn)。有安全考慮的開(kāi)發(fā)者可使用第二種授權(quán)方案。
授權(quán)文件(安全模式)
此種身份驗(yàn)證方案使用授權(quán)文件獲得AccessToken,緩存在本地。建議有安全考慮的開(kāi)發(fā)者使用此種身份驗(yàn)證方式。
在您的移動(dòng)APP分發(fā)出去之后,APP存在被反編譯的可能,所以直接將AK / SK 置于APP源碼之中,存在被盜取的風(fēng)險(xiǎn)。采用授權(quán)文件的身份驗(yàn)證方法,可有效保護(hù)AK/SK在移動(dòng)設(shè)備中的安全。攻擊者即使攔截了流量,盜取了授權(quán)文件,也難以盜用您的配額。
使用步驟:
1.在官網(wǎng)中配置應(yīng)用
2.在***應(yīng)用詳情***頁(yè)面下載對(duì)應(yīng)應(yīng)用的授權(quán)文件
3.將授權(quán)文件添加至工程assets文件夾,文件名必須為aip.license
4.調(diào)用initAccessToken方法,初始化OCR單例:(要在你調(diào)用的頁(yè)面初始化)
OCR-UI模塊調(diào)用示例
調(diào)用拍攝activity,更詳細(xì)的類(lèi)別請(qǐng)參考demo工程
通過(guò)onActivityResult獲取拍攝結(jié)果,更詳細(xì)的類(lèi)別請(qǐng)參考demo工程
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {// 獲取調(diào)用參數(shù)String contentType = data.getStringExtra(CameraActivity.KEY_CONTENT_TYPE);// 通過(guò)臨時(shí)文件獲取拍攝的圖片String filePath = FileUtil.getSaveFile(getApplicationContext()).getAbsolutePath();// 判斷拍攝類(lèi)型(通用,身份證,銀行卡等)if (requestCode == REQUEST_CODE_GENERAL && resultCode == Activity.RESULT_OK) {// 判斷是否是身份證正面if (CameraActivity.CONTENT_TYPE_ID_CARD_FRONT.equals(contentType)){// 獲取圖片文件調(diào)用sdk數(shù)據(jù)接口,見(jiàn)數(shù)據(jù)接口說(shuō)明}} }總結(jié)
- 上一篇: STL容器设计原理
- 下一篇: Pycharm远程调试踩坑:[Errno