快速入门
支持的系统和硬件版本:
- 系统:支持 Android 4.1(API Level 16)到Android 12(API Level 31)系统。需要开发者通过minSdkVersion来保证支持系统的检测。
- CPU架构:armeabi,arm64-v8a,armeabi-v7a,x86。
- 机型:手机和平板皆可。
- 硬件要求:要求设备上有相机模块。
- 网络:支持WIFI及移动网络,移动网络支持使用NET网关及WAP网关(CMWAP、CTWAP、UNIWAP、3GWAP)。
开发包说明
aip-ocr-android-sdk.zip // OCR SDK包,包括文档,demo工程,SDK核心库
|- OCRDemo // demo示例工程
|- libs // lib 库,包括aar包。
|- ocr-ui // ocr UI模块
sdk的包含的UI部分和demo工程以Android Studio方式提供,sdk部分则可以较方便的集成到eclipse工程中。
- 前往SDK下载页面下载Android SDK压缩包。
- (必须)将下载包libs目录中的ocr-sdk.aar文件拷贝到工程libs目录中,并加入工程依赖。
- (可选)如果需要使用UI模块,请在Android studio中以模块方式导入下载包中的ocr-ui文件夹。
为您自己的工程添加必要的权限
如果您在自己的工程中集成SDK,请确保已经在工程AndroidManifest.xml文件中添加如下权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
各个权限的用途说明见下表:
名称 | 用途 |
---|---|
INTERNET | 应用联网,发送请求数据至服务器,获得识别结果。 |
CAMERA | 调用相机进行拍照(仅UI部分需要) |
WRITE_EXTERNAL_STORAGE | 图片裁剪临时存储 |
READ_EXTERNAL_STORAGE | 图片裁剪临时存储 |
Proguard配置
如果您在自己的工程中集成SDK,请在Proguard配置文件中增加, 防止release发布时打包报错:
-keep class com.baidu.ocr.sdk.**{*;}
-dontwarn com.baidu.ocr.**
DEMO使用说明
安卓SDK包中提供了一个可快速运行的demo工程,该工程已经集成了sdk,UI库,您只需直接在Android Studio中导入开发包OCRDemo目录即可运行。
若运行提示"身份验证错误",可能是您还未填写正确的Api Key和Secret Key,或者是还未绑定您安卓应用的包名,如何绑定包名请参考下一章节:身份验证与安全 章节
身份验证与安全
百度AI开放平台使用OAuth2.0授权调用开放API,调用API时必须在URL中带上accesss_token参数。AccessToken可用AK/SK或者授权文件的方式获得。安卓SDK中已经为您做了封装,当初始化完毕后,所有API请求会自动带上accesss_token参数,您也可以通过initAccessTokenWithAkSk,initAccessToken这两个函数的回调中查看。
OCR Android SDK提供了以下2种AccessToken管理方法。
通过API Key / Secret Key获取AccessToken
此种身份验证方案使用AK/SK获得AccessToken。
虽然SDK对网络传输的敏感数据进行了二次加密,但由于AK/SK是明文填写在代码中,在移动设备中可能会存在AK/SK被盗取的风险。有安全考虑的开发者可使用第二种授权方案。
使用步骤:
- 在管理控制台中新建一个OCR应用,并且请填写正确的包名和签名MD5
-
在应用详情页面查看并复制应用的Api Key(简称AK) 和 Secret Key(简称SK),初始化
OCR
单例:OCR.getInstance().initAccessTokenWithAkSk(new OnResultListener
() { @Override public void onResult(AccessToken result) { // 调用成功,返回AccessToken对象 String token = result.getAccessToken(); } @Override public void onError(OCRError error) { // 调用失败,返回OCRError子类SDKError对象 } }, getApplicationContext(), "您的应用AK", "您的应用SK");
由于AK/SK是明文填写在代码中,在移动设备中可能会存在AK/SK被盗取的风险。有安全考虑的开发者可使用第二种授权方案。
授权文件(安全模式)获取AccessToken
此种身份验证方案使用授权文件获得AccessToken,缓存在本地。建议有安全考虑的开发者使用此种身份验证方式。
在您的移动APP分发出去之后,APP存在被反编译的可能,所以直接将AK / SK 置于APP源码之中,存在被盗取的风险。采用授权文件的身份验证方法,可有效保护AK/SK在移动设备中的安全。攻击者即使拦截了流量,盗取了授权文件,也难以盗用您的配额。
使用步骤:
- 在官网中配置应用
- 在应用详情页面下载对应应用的授权文件
- 将授权文件添加至工程assets文件夹,文件名必须为aip-ocr.license
-
调用initAccessToken方法,初始化OCR单例:
OCR.getInstance().initAccessToken(new OnResultListener
() { @Override public void onResult(AccessToken result) { // 调用成功,返回AccessToken对象 String token = result.getAccessToken(); } @Override public void onError(OCRError error) { // 调用失败,返回OCRError子类SDKError对象 } }, getApplicationContext());