当前位置:首页 > 行业动态 > 正文

按键安卓百度文字识别

百度文字识别支持安卓系统,可通过应用内按键快捷调用OCR功能,实现图片文字智能提取与翻译

前提条件

在使用百度文字识别(OCR)功能前,需完成以下准备:

  1. 百度AI账号:注册并登录百度智能云,进入“文字识别”服务,创建应用获取 API KeySecret Key(简称 AK/SK)。
  2. 安卓开发环境:安装 Android Studio,配置项目基础结构。
  3. 权限配置:在 AndroidManifest.xml 中添加网络权限:
    <uses-permission android:name="android.permission.INTERNET" />

实现步骤

注册并获取 AK/SK

  • 登录百度智能云 → 控制台 → 文字识别 → 创建应用 → 记录 API KeySecret Key
  • 注意:AK/SK 需保密,建议通过后端服务器中转调用 API,避免直接暴露在客户端。

配置安卓项目

  • 添加网络依赖(推荐使用 OkHttp):
    implementation 'com.squareup.okhttp3:okhttp:4.9.3'
  • 配置权限:确保已添加网络权限(见前提条件)。

设计界面与逻辑

  • 界面布局:添加一个按钮(触发识别)和一个文本框(显示结果)。
    <Button android:id="@+id/btn_ocr" text="文字识别" />  
    <TextView android:id="@+id/tv_result" /> 
  • 核心逻辑
    1. 用户点击按钮后,选择图片(本地或拍照)。
    2. 将图片转换为 Base64 编码。
    3. 调用百度 OCR API,发送图片数据并获取识别结果。

调用百度 OCR API

  • API 地址https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic
  • 请求参数
    | 参数名 | 值 |
    |————–|——————————————————————–|
    | access_token | 通过 AK/SK 生成的临时 token(有效期约 30 天) |
    | image | Base64 编码的图片数据 |

关键代码示例(Kotlin)

生成 Access Token

fun getAccessToken(apiKey: String, secretKey: String): String {  
    val url = "https://aip.baidubce.com/oauth/2.0/token"  
    val params = mapOf(  
        "grant_type" to "client_credentials",  
        "client_id" to apiKey,  
        "client_secret" to secretKey  
    )  
    // 使用 OkHttp 发送 GET 请求并解析 token(省略具体实现)  
} 

调用 OCR API

fun recognizeText(imageBase64: String, accessToken: String) {  
    val url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic"  
    val json = mapOf(  
        "image" to imageBase64  
    ).toJson() // 需引入 Gson 库  
    val requestBody = RequestBody.create(MediaType.get("application/json"), json)  
    OkHttpClient().newCall(Request.Builder()  
        .url(url)  
        .addHeader("Content-Type", "application/json")  
        .addHeader("Authorization", "Bearer $accessToken")  
        .post(requestBody)  
        .build()).execute().use { response ->  
            val result = response.body?.string()  
            // 解析 JSON 并更新 UI(省略具体实现)  
    }  
} 

注意事项

问题 解决方案
AK/SK 泄露风险 通过后端服务器中转 API 调用,客户端仅传递必要数据。
图片格式不兼容 确保图片为 JPG/PNG 格式,且大小不超过 4MB。
网络请求失败 添加超时重试机制,并检查设备网络状态。
免费额度限制 百度 OCR 新用户每月赠送一定免费调用量,超出需付费(具体以官方为准)。

相关问题与解答

问题1:百度OCR API的调用次数有限制吗?

解答:百度OCR提供免费额度(如通用文字识别每日5万次),超出后需付费,具体配额可在百度智能云控制台查看。

问题2:如果识别失败,如何排查原因?

解答

  1. 检查网络:确保设备联网且无防火墙拦截。
  2. 验证AK/SK:确认 API KeySecret Key 正确,且未过期。
  3. 图片质量:确保图片清晰、无遮挡,且符合格式要求。
  4. 日志分析:查看API返回的错误码(如 `ERROR
0