900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Android Studio调用科大讯飞关键词提取接口

Android Studio调用科大讯飞关键词提取接口

时间:2022-10-29 07:41:06

相关推荐

Android Studio调用科大讯飞关键词提取接口

1.在讯飞开放平台创建应用

2.下载关键词提取Java代码

2.1 代码解压,将下图3个java文件复制到Android项目的与MainActivity.java同一个目录下

2.2 我把ltp中的main函数改成了tuque函数,并传入了参数,以便在MainActivity中调用。

public static void tuque(String TEXT, TextView guarani) throws IOException {//提取关键词System.out.println(TEXT.length());Map<String, String> header = buildHttpHeader();String result = HttpUtil.doPost1(WEBTTS_URL, header, "text=" + URLEncoder.encode(TEXT, "utf-8"));System.out.println("itp 接口调用结果:" + result);guarani.setText(result);}

在MainActivity.java中加入如下代码:

String TEXT = "我爱机器学习";try {ltp.tuque(TEXT, guarani);} catch (IOException e) {e.printStackTrace();}

其中,guarani是我定义的在界面上显示结果的TextView控件。

2.3 (坑1)此时ltp.java中的

import mons.codec.binary.Base64;

import mons.codec.digest.DigestUtils;

这两行代码会变红,这时要在build.gradle中添加依赖:

2.4 (坑2)需要把科大讯飞的接口地址的http改成https。否则排除万难可以跑通却不显示结果。因此我打印出异常,发现是:W/System.err: java.io.IOException: Cleartext HTTP traffic to *** not permitted

因为Android9.0(API 28)对http请求的限制。规定所有应用程序默认使用 Https进行网络通信,不能使用Http进行明文通信。这个规定导致app的Http访问权限受限,从而抛出异常。在官网给的demo里接口地址是

而讯飞开放平台控制台给的:

2.5 (坑3)此时运行到真机会报错,需要在app的build.gradle中添加如下代码:

packagingOptions {

exclude ‘META-INF/DEPENDENCIES’

exclude ‘META-INF/NOTICE’

exclude ‘META-INF/LICENSE’

exclude ‘META-INF/LICENSE.txt’

exclude ‘META-INF/NOTICE.txt’

}

我看的这篇博客。

2.6 (坑4)现在运行到真机还是会报错,因为现在是在主进程访问接口,可能会造成阻塞,所以Android Studio报错,最简单的方法是强制Android Studio忽略这个问题,我在MainActivity.java里的onCreate方法前加上

@SuppressLint("NewApi")

在onCreate方法里加上

StrictMode.ThreadPolicy policy=new StrictMode.ThreadPolicy.Builder().permitAll().build();StrictMode.setThreadPolicy(policy);

3 完成

我到这里就跑通并可以正确显示结果了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。