文字识别

    快速入门

    支持的系统和硬件版本

    • 系统:支持 Android 4.0(API Level 15)到Android7.0(API Level 25)系统。需要开发者通过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 库,包括各平台的so库及 jar包。
        |- ocr-ui                          // ocr UI模块
        |- OCR-android-SDK.md              // 使用说明文档

    sdk的包含的UI部分和demo工程以Android Studio方式提供,sdk部分则可以较方便的集成到eclipse工程中。

    1. 前往SDK下载页面下载Android SDK压缩包。
    2. (必须)将下载包libs目录中的ocr-sdk.jar文件拷贝到工程libs目录中,并加入工程依赖。
    3. (必须)将libs目录下armeabi,arm64-v8a,armeabi-v7a,x86文件夹按需添加到android studio工程src/main/jniLibs目录中, eclipse用户默认为libs目录。
    4. (可选)如果需要使用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

    此种身份验证方案使用AK/SK获得AccessToken。

    虽然SDK对网络传输的敏感数据进行了二次加密,但由于AK/SK是明文填写在代码中,在移动设备中可能会存在AK/SK被盗取的风险。有安全考虑的开发者可使用第二种授权方案。

    使用步骤:

    1. 管理控制台中新建一个OCR应用,并且请填写正确的包名
    2. 应用详情页面查看并复制应用的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,缓存在本地。建议有安全考虑的开发者使用此种身份验证方式。

    在您的移动APP分发出去之后,APP存在被反编译的可能,所以直接将AK / SK 置于APP源码之中,存在被盗取的风险。采用授权文件的身份验证方法,可有效保护AK/SK在移动设备中的安全。攻击者即使拦截了流量,盗取了授权文件,也难以盗用您的配额。

    使用步骤:

    1. 官网中配置应用
    2. 应用详情页面下载对应应用的授权文件
    3. 将授权文件添加至工程assets文件夹,文件名必须为aip.license
    4. 调用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());

    上一篇
    简介
    下一篇
    接口调用说明