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