IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android Studio调用科大讯飞关键词提取接口 -> 正文阅读

[移动开发]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 org.apache.commons.codec.binary.Base64;
import org.apache.commons.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 完成

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

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-03-24 00:42:07  更:2022-03-24 00:43:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 19:44:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码