需要自己先注册账号注册机机器人,并且得到自己的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(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); ChatMessage fromChatMessage = (ChatMessage) msg.obj; data.add(fromChatMessage); adapter.notifyDataSetChanged(); lvSend.setSelection(data.size()-1); } }; @Override protected 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); } @Override public 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() { @Override public 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; } @Override public 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"> <TextView android: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"/> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <LinearLayout android:layout_gravity="center" android:layout_marginLeft="5dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <ImageView android:layout_width="40dp" android:layout_height="40dp" android:scaleType="centerCrop" android:layout_gravity="center" android:src="@mipmap/ic_launcher"/> <TextView android: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> <TextView android: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"> <TextView android: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"/> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android: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"/> <LinearLayout android:layout_marginRight="5dp" android:layout_marginLeft="10dp" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <ImageView android:layout_width="40dp" android:layout_height="40dp" android:scaleType="centerCrop" android:layout_gravity="center" android:src="@mipmap/ic_launcher"/> <TextView android: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"> <RelativeLayout android:id="@+id/rl_title" android:layout_width="match_parent" android:layout_height="45dp" android:background="@android:color/black"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20sp" android:layout_centerInParent="true" android:textColor="@android:color/white" android:text="与盼盼机器人对话中..."/> </RelativeLayout> <RelativeLayout android:id="@+id/rl_send" android:layout_width="match_parent" android:background="@color/colorAccent" android:layout_alignParentBottom="true" android:layout_height="40dp"> <EditText android: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" /> <Button android: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> <ListView android: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
版权声明:内容来源于互联网和用户投稿 如有侵权请联系删除