需要自己先注册账号注册机机器人,并且得到自己的apiKey

接下来就可以使用了,上代码

package com.sdp.panda.panpanapp.utils;import com.google.gson.Gson;
import com.sdp.panda.panpanapp.bean.ChatMessage;
import com.sdp.panda.panpanapp.bean.ResultBean;import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Date;/*** Created by 80926 on 2016/12/1.*/public class HttpUtils {private static final String URL = "http://www.tuling123.com/openapi/api";private static final String API_KEY = "dbc824a0f5164b6a97ef7c9c828e350c";
//http://www.tuling123.com/openapi/api?key=dbc824a0f5164b6a97ef7c9c828e350c&info=你好啊//发送消息得到消息public static ChatMessage sendMessage(String msg) {ChatMessage chatMessage = new ChatMessage();String jsonRes = doGet(msg);Gson gson = new Gson();ResultBean resultBean = null;try {resultBean = gson.fromJson(jsonRes, ResultBean.class);chatMessage.setMsg(resultBean.getText());}catch (Exception e){chatMessage.setMsg("服务器繁忙");}chatMessage.setDate(new Date());chatMessage.setType(ChatMessage.Type.INCOMING);return chatMessage;}public static String doGet(String msg) {String result = "";String url = setParams(msg);InputStream is = null;ByteArrayOutputStream baos = null;try {java.net.URL urlNet = new URL(url);HttpURLConnection conn = (HttpURLConnection) urlNet.openConnection();conn.setConnectTimeout(5000);conn.setReadTimeout(5000);conn.setRequestMethod("GET");is = conn.getInputStream();int len = -1;byte[] buffer = new byte[1024];baos = new ByteArrayOutputStream();while ((len = is.read(buffer)) != -1) {baos.write(buffer, 0, len);}baos.flush();result = new String(baos.toByteArray());} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {if (baos != null) {try {baos.close();} catch (IOException e) {e.printStackTrace();}}if (is != null) {try {is.close();} catch (IOException e) {e.printStackTrace();}}}return result;}private static String setParams(String msg) {String url = "";try {url = URL + "?key=" + API_KEY + "&info=" + URLEncoder.encode(msg, "UTF-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}return url;}
}
  • 1
package com.sdp.panda.panpanapp;import android.os.AsyncTask;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;import com.sdp.panda.panpanapp.adapter.ChatMessageAdapter;
import com.sdp.panda.panpanapp.bean.ChatMessage;
import com.sdp.panda.panpanapp.utils.HttpUtils;import java.util.ArrayList;
import java.util.Date;
import java.util.List;public class MainActivity extends AppCompatActivity implements View.OnClickListener {private TextView textView;private ListView lvSend;private EditText etSend;private Button btnSend;private List<ChatMessage> data = new ArrayList<>();private ChatMessageAdapter adapter;private Handler handler = new Handler(){@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);ChatMessage fromChatMessage = (ChatMessage) msg.obj;data.add(fromChatMessage);adapter.notifyDataSetChanged();lvSend.setSelection(data.size()-1);}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();initData();btnSend.setOnClickListener(this);}private void initData() {ChatMessage chatMessage = new ChatMessage("你好盼盼为你服务", ChatMessage.Type.INCOMING,new Date());data.add(chatMessage);adapter = new ChatMessageAdapter(this,data);lvSend.setAdapter(adapter);}private void initView() {lvSend = (ListView) findViewById(R.id.lv_send);etSend = (EditText) findViewById(R.id.et_send_msg);btnSend = (Button) findViewById(R.id.btn_send_msg);}@Overridepublic void onClick(View v) {final String string = etSend.getText().toString().trim();if (TextUtils.isEmpty(string)){Toast.makeText(this, "不能为空", Toast.LENGTH_SHORT).show();return;}ChatMessage toChatMessage = new ChatMessage();toChatMessage.setType(ChatMessage.Type.OUTCOMING);toChatMessage.setMsg(string);toChatMessage.setDate(new Date());data.add(toChatMessage);adapter.notifyDataSetChanged();lvSend.setSelection(data.size()-1);etSend.setText("");new Thread(new Runnable() {@Overridepublic void run() {ChatMessage fromMessage = HttpUtils.sendMessage(string);fromMessage.setDate(new Date());fromMessage.setType(ChatMessage.Type.INCOMING);fromMessage.setMsg(fromMessage.getMsg());
// runOnUiThread(new Runnable() {
// @Override
// public void run() {
//
// }
// });Message message = new Message();message.obj = fromMessage;handler.sendMessage(message);}}).start();}
}
  • 1
package com.sdp.panda.panpanapp.bean;import java.util.Date;/*** Created by 80926 on 2016/12/1.*/public class ChatMessage {private String name;private String msg;private Type type;private Date date;public ChatMessage() {}public ChatMessage(String msg, Type type, Date date) {this.msg = msg;this.type = type;this.date = date;}public enum Type {INCOMING, OUTCOMING}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public Type getType() {return type;}public void setType(Type type) {this.type = type;}public Date getDate() {return date;}public void setDate(Date date) {this.date = date;}
}
  • 1
package com.sdp.panda.panpanapp.bean;/*** Created by 80926 on 2016/12/1.*/public class ResultBean {private int code;private String text;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;}@Overridepublic String toString() {return "ResultBean{" +"code=" + code +", text='" + text + '\'' +'}';}
}
  • 1
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:id="@+id/from_msg_date"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="15sp"android:textColor="@android:color/black"android:gravity="center"android:layout_gravity="center"android:background="@android:color/holo_blue_light"android:text="2013_3_3"/><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"><LinearLayoutandroid:layout_gravity="center"android:layout_marginLeft="5dp"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"><ImageViewandroid:layout_width="40dp"android:layout_height="40dp"android:scaleType="centerCrop"android:layout_gravity="center"android:src="@mipmap/ic_launcher"/><TextViewandroid:layout_marginTop="5dp"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="10sp"android:textColor="@android:color/darker_gray"android:text="盼盼机器人"/></LinearLayout><TextViewandroid:id="@+id/from_msg"android:layout_marginLeft="5dp"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:gravity="center"android:text="你也好啊"android:background="@drawable/chatfrom_bg_normal"android:textSize="16sp"/></LinearLayout>
</LinearLayout>
  • 1
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="right"android:orientation="vertical"><TextViewandroid:id="@+id/send_msg_date"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="15sp"android:textColor="@android:color/black"android:gravity="center"android:layout_gravity="center"android:background="@android:color/darker_gray"android:text="2013_3_3"/><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"><TextViewandroid:id="@+id/send_msg"android:layout_marginLeft="5dp"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:text="你好"android:gravity="center"android:background="@drawable/chatto_bg_normal"android:textSize="16sp"/><LinearLayoutandroid:layout_marginRight="5dp"android:layout_marginLeft="10dp"android:layout_gravity="center"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"><ImageViewandroid:layout_width="40dp"android:layout_height="40dp"android:scaleType="centerCrop"android:layout_gravity="center"android:src="@mipmap/ic_launcher"/><TextViewandroid:layout_marginTop="5dp"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="10sp"android:layout_gravity="center"android:textColor="@android:color/darker_gray"android:text="盼盼"/></LinearLayout></LinearLayout>
</LinearLayout>
  • 1
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"><RelativeLayoutandroid:id="@+id/rl_title"android:layout_width="match_parent"android:layout_height="45dp"android:background="@android:color/black"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="20sp"android:layout_centerInParent="true"android:textColor="@android:color/white"android:text="与盼盼机器人对话中..."/></RelativeLayout><RelativeLayoutandroid:id="@+id/rl_send"android:layout_width="match_parent"android:background="@color/colorAccent"android:layout_alignParentBottom="true"android:layout_height="40dp"><EditTextandroid:id="@+id/et_send_msg"android:layout_margin="3dp"android:layout_centerInParent="true"android:background="@android:color/white"android:layout_width="match_parent"android:layout_height="30dp" /><Buttonandroid:id="@+id/btn_send_msg"android:textColor="@android:color/white"android:background="@android:color/holo_red_dark"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:text="发送"/></RelativeLayout><ListViewandroid:layout_below="@id/rl_title"android:layout_above="@id/rl_send"android:id="@+id/lv_send"android:divider="@null"android:dividerHeight="3dp"android:layout_width="match_parent"android:layout_height="match_parent"></ListView>
</RelativeLayout>
  • 1

<Android>集成图灵机器人的小demo相关推荐

  1. android 腾讯微博登录小demo

    目前越来越多的app,都需要集成三方登录(腾讯微博.新浪微博.人人等等).这里分享一个简单的腾讯微博demo.废话不多说,三步走. 第一步注册一个账户,并创建一个应用.获取app ID与 app Ke ...

  2. Android 新版个税计算小demo程序

    去年10月份开始个人所得税支持专项扣除和上调了个税起征点,针对该项改变写了一个小demo,在新政策下计算个人所得税扣除,工资所得,然后将每个月的扣除额度和实际所得额度展示. 截图如下: 直接上源码: ...

  3. 图灵机器人-Java/Android

    概述: 一直觉得图灵机器人这个小东西是一个很好玩的东西,今天去官网看了一下,里面一段Java代码的调用试例,而且是以main方法封装好了的,我想是不是可以直接拿来用.一点戏剧性都没有,除了自己impo ...

  4. 用图灵机器人2.0实现聊天机器人

    聊天机器人是我最近写的一个项目,本来以为这个项目的难点是请求ajax,但是真正实现起来,发现,聊天机器人这样的一个小demo对前端的基础的要求还是挺大的,下面我将从AJAX.HTML.CSS.JS四个 ...

  5. 是时候找个一直在线的人陪你聊天了--图灵机器人小demo的实现。

    话不多说,直接上步骤: 第一步:申请图灵账号,获取到自己的专属key值: http://www.tuling123.com/   这是图灵机器人官网,点击注册,注册成功并登陆之后,点击右上角的小图标进 ...

  6. Android使用讯飞SDK开发语音识别及合成小Demo

    自然语言处理现在是比较火的一个领域,也有了很多成熟的应用,像科大讯飞或是百度语音等等这些商业产品的一个优势之一就是比较稳定,适合用来做开发.下面就展示一个根据讯飞SDK文档做出的具有语音识别和语音合成 ...

  7. Android学习小Demo(12)TodoList实现ListView的分组实现

    很多情况下, 我们想要ListView上面展示的东西是可以分组的,比如联系人列表,国家列表啊,这样看起来数据的展现比较有层次感,而且也有助于我们快速定位到某一个具体的条目上,具体效果请看下图: 这是前 ...

  8. Android学习小Demo(11)一个显示行线的自定义EditText

    今天在处理一个EditText的时候,想着把EditText做成像一本作业本上的纸一样,每一行都可以由线条隔开,具体效果如下: 1)最开始的思路 一开始的想法是很简单的,找出每一行的高度,然后一行一行 ...

  9. Android学习小Demo(10)ToDoList的改进版之ViewPager显示多个图片

    在TodoList增强版的增加界面上,为了显示图片,我是挖了两块地方,放了两个ImageButton,来显示图片,而且限制了最多只能放两张图片.当两个View都放置图片之后,我就会把"Gal ...

最新文章

  1. Android深度探索(卷1)HAL与驱动开发 第四章 源代码的下载和编译 读书笔记
  2. no awt in java.libary.path
  3. 川大和西南交大计算机考研难易度,2020考研:百所211院校报考难易度分析
  4. c语言掌上通,计算机二级C语言掌上通在哪下载安装?计算机掌上通好用吗?
  5. 工作289:父子组件传值控制弹窗关闭
  6. php ouput buffer,Redis配置详解-客户端缓冲区 output buffer
  7. leetcode —— 938. 二叉搜索树的范围和
  8. Solaris11创建NFS服务
  9. Spring Security 3多用户登录实现之二 多登录界面展示
  10. 用线程安全随机数解决Random在多线程中随机性重复的问题
  11. vscode+unity+Emmylua调试使用教程
  12. Maix_Bit官方烧录软件和IDE的使用
  13. 网卡的HWADDR和MACADDR的区别?
  14. 明哥手把手《闲鱼快速入门指南》电子书!!
  15. MeterSphere案例分享丨88完美邮箱全面提升产品质量的落地指南
  16. win10笔记本合盖无法睡眠(风扇依然在转动)(开盖后不是锁屏状态)
  17. 【校招VIP】前端校招考点之页面转换算法
  18. macport 安装使用
  19. go语言初学者常见错误
  20. 视频服务器(3) RTSP地址

热门文章

  1. [DeeplearningAI笔记]改善深层神经网络_优化算法2.1_2.2_mini-batch梯度下降法
  2. 2017第111届中国文化用品商品交易会(2017上海文化展)会刊(参展商名录)
  3. ConstraintLayout的取消使用 修改默认使用linearLayout不是这个
  4. Fastadmin 修改样式,替换掉默认皮肤
  5. 项目出现红色叹号或红叉
  6. 等保级别最高为几级?市面上常见吗?
  7. 合肥赛区我们学校得了铜牌
  8. 联发科 2024届 IC实习笔试分析
  9. 尚硅谷-康师傅-MySQL详细笔记(10-18章)
  10. pic单片机c语言哪一种好,PIC单片机挑选哪一个比较好?国产替代方案有哪些?...