赞
踩
我们先看看官网的介绍:官网链接
比如:虚拟机器人 HTC的语音助手(小Hi)
说了那么多,接下来我们也实现一个虚拟机器人(聊天机器人):我们输入一句话,会自动回复我们。
官方文档
下面开始实现(简单点),Demo就一个输入框,一个按钮,一个文本
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.rair.demo.MainActivity">
<EditText
android:hint="请输入"
android:id="@+id/et_request"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:text="请求"
android:id="@+id/btn_request"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/tv_result"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
导入下载的jar包只需要三个,倒入Gson包(不然会报错,找不到Gson类)
初始化SDK,最好放在Application中初始化
演示实在Activity中初始化
/**
* 初始化图灵
*/
private void initTL() {
SDKInitBuilder sdkInitBuilder = new SDKInitBuilder(this)
.setTuringKey(TURING_KEY)
.setUniqueId(UNIQUE_ID)
.setSecret(SECRET);
SDKInit.init(sdkInitBuilder, new InitListener() {
/**
* 初始化成功后再实例化TuringApiManager,否则很多功能不能使用
*/
@Override
public void onComplete() {
apiManager = new TuringApiManager(getApplicationContext());
Toast.makeText(getApplicationContext(), "初始化成功", Toast.LENGTH_SHORT).show();
}
@Override
public void onFail(String s) {
Toast.makeText(getApplicationContext(), "发生意外", Toast.LENGTH_SHORT).show();
}
});
}
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
添加权限
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
按钮点击事件(获取输入文本并请求)
@Override
public void onClick(View v) {
final String request = etRequest.getText().toString();
if (TextUtils.isEmpty(request)) {
Toast.makeText(this, "你没有输入内容", Toast.LENGTH_SHORT).show();
return;
}
if (apiManager != null) {
apiManager.requestTuringAPI(request);
}
apiManager.setHttpListener(new HttpConnectionListener() {
@Override
public void onError(ErrorMessage errorMessage) {
}
@Override
public void onSuccess(RequestResult requestResult) {
//成功回调
Result result = new Gson().fromJson(requestResult.getContent().toString(), Result.class);
String text = result.getText();
tvResult.setText(text);
}
});
}
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
Gson解析需要一个JavaBean对象
public class Result {
private int code;
private String text;
private String url;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
code 状态码
text 文本
url url链接
一个简单的聊天机器人就好了。
我们可以自由发挥添加很多功能
菜谱查询:
点击立即查看:
点击条目后:
还有例如航班查询:
天气查询:
也可以动动小脑经,利用图灵的智慧,结合android的辅助服务,自己研究一个QQ聊天机器人
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private EditText etRequest;
private Button btnRequest;
private TextView tvResult;
//appkey
private static final String TURING_KEY = "自己申请";
//随便写一个
private static final String UNIQUE_ID = "645207307";
//秘钥
private static final String SECRET = "xxxxxxxxxxxxx保密";
private static final String TAG = "Rair";
private TuringApiManager apiManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etRequest = (EditText) findViewById(R.id.et_request);
btnRequest = (Button) findViewById(R.id.btn_request);
tvResult = (TextView) findViewById(R.id.tv_result);
btnRequest.setOnClickListener(this);
initTL();
}
/**
* 初始化图灵
*/
private void initTL() {
SDKInitBuilder sdkInitBuilder = new SDKInitBuilder(this)
.setTuringKey(TURING_KEY)
.setUniqueId(UNIQUE_ID)
.setSecret(SECRET);
SDKInit.init(sdkInitBuilder, new InitListener() {
/**
* 初始化成功后再实例化TuringApiManager,否则很多功能不能使用
*/
@Override
public void onComplete() {
apiManager = new TuringApiManager(getApplicationContext());
Toast.makeText(getApplicationContext(), "初始化成功", Toast.LENGTH_SHORT).show();
}
@Override
public void onFail(String s) {
Toast.makeText(getApplicationContext(), "发生意外", Toast.LENGTH_SHORT).show();
}
});
}
@Override
public void onClick(View v) {
final String request = etRequest.getText().toString();
if (TextUtils.isEmpty(request)) {
Toast.makeText(this, "你没有输入内容", Toast.LENGTH_SHORT).show();
return;
}
if (apiManager != null) {
apiManager.requestTuringAPI(request);
}
apiManager.setHttpListener(new HttpConnectionListener() {
@Override
public void onError(ErrorMessage errorMessage) {
}
@Override
public void onSuccess(RequestResult requestResult) {
//成功回调
Result result = new Gson().fromJson(requestResult.getContent().toString(), Result.class);
String text = result.getText();
tvResult.setText(text);
}
});
}
}
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。