查词接口说明
<h3>概述</h3>
<p>该部分接口的入口类为 <strong>SdkManager</strong>,在调用该部分接口前,需要打开sdk和license认证通过,否则有可能会导致部分功能无法正常work。</p>
<h3>*.自定义机型</h3>
<p>如有需要自定义设备机型的,可调用该方法,<strong><code>在初始化SDK前调用</code> </strong>,自定义型号需跟原机型不一致,参数:String (字母需要小写,不支持特殊字符),该方法用于同一机型,但是出图不一致时使用</p>
<pre><code class="language-java"> /**
* 这两个方法都可以自定义设备id
*/
DeviceUtils.customizeDeviceID(&quot;adc_888&quot;);
VTBaseConfigure.customizeDeviceID(&quot;adc_888&quot;);</code></pre>
<h3>1.初始化SDK</h3>
<p><strong>接口名称:</strong></p>
<pre><code class="language-java"> /**
* 初始化SDK
* @param context
*/
public void init(Context context , boolean isOwnPoint)</code></pre>
<p><strong>备注:</strong></p>
<p>初始化Sdk,isOwnPoint需设置为true,设置false会导致查词无法正常运行</p>
<h3>2. 初始化License</h3>
<p><strong>接口名称:</strong></p>
<pre><code class="language-java"> /**
* license初始化
* @param License
* @param callback
*/
public void initLicense(String License , final InitializeCallback callback);</code></pre>
<p><strong>备注:</strong>
在开启查词前必须先进行登录验证,确认初始化成功,如果初始化失败请查看(onInitFail(long code, String msg))该方法的信息([错误码信息](<a href="https://www.showdoc.com.cn/visiontalk/2174432568790235">https://www.showdoc.com.cn/visiontalk/2174432568790235</a> "错误码信息")),以便排查原因。</p>
<h4>2.1 InitializeCallback介绍</h4>
<p>InitializeCallback是初始化结果的返回调用接口,有两个方法onInitFail 和 onInitSuccess;</p>
<p><strong>方法名称:</strong></p>
<pre><code class="language-java"> /**
* 初始化失败
* @param errCode 错误码
* @param msg
*/
void onInitFail(int errCode, String msg);
/**
* 初始化成功后设置识别参数 默认false 设置true忽略SDK内部参数配置 需外 部设置 目前只支持false
*/
boolean onSetupParamsBeforeSuccess();
/**
* 初始化成功
*/
void onInitSuccess();</code></pre>
<h3>3. 开始识别</h3>
<p>在onPreview方法中调用该方法进行识别,可在onPreview中保存图像进行分析,预览流回传较快,建议3秒左右保存一次图片
<strong>接口名称:</strong></p>
<pre><code class="language-java"> /**
*
* @param data 图片数据
* @param prewidth 预览图像宽
* @param preheight 预览图像高
*/
public void startOCRRecognize(final byte[] data, final int width, final int height)</code></pre>
<p><strong>备注:</strong>
1、<strong>获取相机参数:(以下参数需要在license初始化成功后获取)
相机Id : DeviceConfig.get().getCameraId()
预览分辨率width : DeviceConfig.getOCRHwWidth()
预览分辨率height : DeviceConfig.getOCRHwHeight();</strong>
2、<strong>确保预览图像分辨率在500w以上,过低分辨率影响识别效果!!取预览最高分辨率为佳!!</strong>;
3、<strong>确保后台服务中开启了在线手指或离线手指服务!!</strong>;
4、<strong><code>在线手指和离线手指的切换由license控制!!</code> </strong>;</p>
<h3>4. 设置IFingerCallback</h3>
<p><strong>接口名称:</strong></p>
<pre><code class="language-java"> /**
* 设置手指坐标回调
* @param mIFingerCallback
*/
void setIFingerCallback(IFingerCallback mIFingerCallback);</code></pre>
<p><strong>备注:</strong></p>
<p>手指是在IFingerCallback这个回调产生</p>
<h4>4.1 IFingerCallback介绍</h4>
<p>IFingerCallback是获取手指结果的返回调用接口</p>
<p><strong>方法名称:</strong></p>
<pre><code class="language-java">public interface IFingerCallback {
/**
* 成功检测到手指
*/
void onDictFingerSuccess();
/**
* 手指检测成功
* @param image 获取手指那一帧
* @param imageWidth
* @param imageHeight
* @param mPoint 手指的相对坐标点(手指的像素坐标对应的书本位置坐标)
*/
void onFingerSuccess(byte[] image, int imageWidth, int imageHeight, Point mPoint);
/**
* 检测手指失败
* @param code 错误码
* @param error 错误信息
*/
void onFingerFail(int code, String msg);
}</code></pre>
<p><strong>备注:</strong>
1.获取得到手指坐标接口 onFingerDetectSuccess :(absolutePoints[0].x,absolutePoints[0].y)
2.onFingerImage 接口返回的是获取手指的那一帧预览图</p>
<h3>5 设置取词回调</h3>
<p><strong>方法名称:</strong></p>
<pre><code class="language-java"> /**
* 设置OCR回调
* @param mIVTOCRCallback
*/
void setIVTOCRCallback(IVTOCRCallback mIVTOCRCallback);</code></pre>
<p><strong>备注:</strong>
取词返回是在IVTOCRCallback这个回调产生</p>
<h4>5.1 IVTOCRCallback介绍</h4>
<p>该回调类用于监听查词回调,接口类如下:</p>
<pre><code class="language-java">public interface IVTOCRCallback {
/**
* 取词成功返回结果
* @param mVTOCRBean
* @param x 手指x坐标
* @param y 手指y坐标
* @param time 时间戳
*/
void onVTDictSuccess(VTOCRBean mVTOCRBean, double x, double y, long time);
/**
* 查词失败
* @param code 错误码
* @param error 错误信息
*/
void onVTDictError(int code, String error);
}</code></pre>
<h4>5.2 onVTDictSuccess</h4>
<p>该回调为查词成功的回调
<strong> VTOCRBean类</strong></p>
<table>
<thead>
<tr>
<th>属性</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>word</td>
<td>WordBean</td>
<td>单词结果</td>
</tr>
<tr>
<td>infos</td>
<td>InfosBean</td>
<td>切图信息</td>
</tr>
</tbody>
</table>
<p><strong> WordBean类</strong></p>
<table>
<thead>
<tr>
<th>属性</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>word</td>
<td>String</td>
<td>单词结果</td>
</tr>
<tr>
<td>bbox</td>
<td>String</td>
<td>框坐标</td>
</tr>
</tbody>
</table>
<p><strong> InfosBean类</strong></p>
<table>
<thead>
<tr>
<th>属性</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>x</td>
<td>int</td>
<td>坐标x</td>
</tr>
<tr>
<td>y</td>
<td>int</td>
<td>坐标y</td>
</tr>
<tr>
<td>ocr_time</td>
<td>double</td>
<td>算法ocr时间(s)</td>
</tr>
</tbody>
</table>
<h3>6 设置词典类型</h3>
<p><strong>方法名称:</strong></p>
<pre><code class="language-java">
/**
* 设置词典类型
* @param wordType
*/
void setWordType(WordType wordType);</code></pre>
<p><strong> WordType类</strong></p>
<table>
<thead>
<tr>
<th>属性</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>EN</td>
<td>int</td>
<td>英汉词典</td>
</tr>
<tr>
<td>ZH</td>
<td>int</td>
<td>汉语词典</td>
</tr>
</tbody>
</table>
<h3>7 文本调用词典</h3>
<p><strong>方法名称:</strong></p>
<pre><code class="language-java"> /**
* 调用词典
* @param word 词典文本
*/
void translate(String word);</code></pre>
<h3>8 设置词典回调</h3>
<p><strong>方法名称:</strong></p>
<pre><code class="language-java"> /**
* 设置翻译回调
* @param mITranslateCallback
*/
void setITranslateCallback(ITranslateCallback mITranslateCallback);</code></pre>
<p><strong>备注:</strong>
词典返回是在ITranslateCallback这个回调产生</p>
<h4>8.1 设置ITranslateCallback</h4>
<p>该回调类用于监听词典回调,接口类如下:</p>
<pre><code class="language-java">public interface ITranslateCallback {
/**
* 格灵词典返回
* @param entity
*/
void onGlTranslateSuccess(TranslateEntity entity);
/**
* 玩瞳词典返回
* @param entity
*/
void onVtTranslateSuccess(VTTranslateEntity entity);
void onTranslateFail(int code, String msg);
}</code></pre>
<h3>9. 释放</h3>
<p><strong>接口名称:</strong></p>
<pre><code class="language-java"> /**
* 注销
*/
public void destroy()</code></pre>