【Android】灵云手写离线识别使用说明

本文介绍了如何在Android应用中集成和使用灵云的离线手写识别功能。首先需要在官网上注册并创建应用,获取必要的capKey。接着,下载SDK和资源文件,将SO库和JAR包添加到项目中。在Android平台,需要修改SO文件名并放置于指定目录。然后,设置相关权限,初始化系统,实现手写识别功能。首次使用时,会有一个联网授权步骤,授权成功后即可离线使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注册

使用灵云的手写识别功能需要先在官网上进行注册应用。官网地址

注册比较简单,就不做过多介绍了,注册完应用以后,在后台创建自己的应用,创建完应用以后需要给应用开通对应的手写功能。
这里写图片描述

capKey说明:

  • hwr.cloud.letter 云端单字识别功能
  • hwr.cloud.freewrite 云端多字识别功能
  • hwr.local.letter 本地单字识别功能
  • hwr.local.freestylus 本地多字识别功能
  • hwr.local.associateword 本地联想词功能

集成

下载灵云的Android版本手写识别功能,下载地址
如果使用在线功能,下载对应的SDK,里面有jar包和so,就可以满足需求了。如果要使用离线的手写识别功能,还需要下载灵云资源文件

资源文件列表:

这里写图片描述

如果是在android平台上使用,需要修改一下名字,修改为如下,并加入到libs/armeabi目录下
这里写图片描述

源码

Github

灵云离线手写识别功能

需要加入的so和jar包有:

  • libhci_curl.so
  • libhci_sys.so
  • libhci_sys_jni.so
  • libhci_hwr.so
  • libhci_hwr_hwr_jni.so
  • libhci_hwr_local_recog.so
  • libletter.conf.so
  • libletter.dic.so

需要使用的权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

加载配置类

package com.miao.util;

/**
 * 灵云配置信息
 * Created by 10048 on 2016/12/3.
 */
public class ConfigUtil {
   
    /**
     * 灵云APP_KEY
     */
    public static final String APP_KEY = "c85d54f1";

    /**
     * 开发者密钥
     */
    public static final String DEVELOPER_KEY = "712ddd892cf9163e6383aa169e0454e3";

    /**
     * 灵云云服务的接口地址
     */
    public static final String CLOUD_URL = "test.api.hcicloud.com:8888";

    /**
     * 需要运行的灵云能力
     */
    //云端多字识别功能
    public static final String CAP_KEY_HWR_CLOUD_FREETALK = "hwr.cloud.freetalk";
    //云端单字识别功能
    public static final String CAP_KEY_HWR_CLOUD_LETTER = "hwr.cloud.letter";
    //离线单字识别功能
    public static final String CAP_KEY_HWR_LOCAL_LETTER = "hwr.local.letter";
    //离线多字识别功能
    public static final String CAP_KEY_HWR_LOCAL_FREESTYLUS = "hwr.local.freestylus";
    //离线联想功能
    public static final String CAP_KEY_HWR_LOCAL_ASSOCIATE_WORD = "hwr.local.associateword";
    //离线笔形功能
    public static final String CAP_KEY_HWR_LOCAL_PENSCRIPT = "hwr.local.penscript";
}

封装灵云系统的初始化功能

package com.example.sinovoice.util;

import android.content.Context;
import android.os.Environment;
import android.util.Log;

import com.sinovoice.hcicloudsdk.api.HciCloudSys;
import com.sinovoice.hcicloudsdk.common.AuthExpireTime;
import com.sinovoice.hcicloudsdk.common.HciErrorCode;
import com.sinovoice.hcicloudsdk.common.InitParam;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

/**
 * Created by miaochangchun on 2016/11/28.
 */
public class HciCloudSysHelper {
   
    private static final String TAG = HciCloudSysHelper.class.getSimpleName();
    private static HciCloudSysHelper mHciCloudSysHelper = null;

    private HciCloudSysHelper(){
    }

    public static HciCloudSysHelper getInstance() {
        if (mHciCloudSysHelper == null) {
            return  new HciCloudSysHelper();
        }
        return  mHciCloudSysHelper;
    }

    /**
     * 初始化函数
     * @param context
     * @return
     */
    public int init(Context context){
        //配置串参数
        String strConfig = getInitParam(context);
        int errCode = HciCloudSys.hciInit(strConfig, context);
        if (errCode != HciErrorCode.HCI_ERR_NONE){
            Log.e(TAG, "hciInit Failed and return errcode = " + errCode);
            return errCode;
        }

        errCode = checkAuthAndUpdateAuth();
        if (errCode != HciErrorCode.HCI_ERR_NONE) {
            Log.e(TAG, "checkAuthAndUpdateAuth Failed and return errcode = " + errCode);
            return errCode;
        }
        return HciErrorCode.HCI_ERR_NONE;
    }

    /**
     * 获取授权
     * @return
     */
    private int checkAuthAndUpdateAuth() {
        // 获取系统授权到期时间
        AuthExpireTime objExpireTime = new AuthExpireTime();
       
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值