怎么做一个安卓聊天机器人

2025-07-23 15:34:33

1、1,首先自己下载工具,搭建一个Android开发环境,去百度一下(安卓开发环境搭建),有详细步骤。2,百度搜索“图灵机器人”,去注册一个账号,获取api key,用来调用图灵机器人的数据。

怎么做一个安卓聊天机器人

2、把API key 复制下来放在一个记事本,之后要在代码中用的。

怎么做一个安卓聊天机器人

3、先新建一个Android工程,我的工程名为:Person,源代码在com.shenbin.person包下,MainActivity是Android的activity。还包括HttpDate类,HttpGetDateListener类,ListDate类,TextAdapter类

怎么做一个安卓聊天机器人

4、//MainActivity代码:/*下面的代码修改httpDate = (HttpDate) new HttpDate("http://www.tuling123.com/openapi/api?key=********&info="+droph,this).execute();把********替换成自己的API key*/package com.shenbin.person;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;import org.json.JSONException;import org.json.JSONObject;import android.os.Bundle;import android.app.Activity;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.ListView;public class MainActivity extends Activity implements HttpGetDateListener,OnClickListener{//实现接口private HttpDate httpDate; private List<ListDate> lists;private ListView lv;private EditText getText;private Button send_btn;private String content_str;private TextAdapter adapter;private String [] welcome_array;private double currentTime,oldTime = 0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();//httpDate = (HttpDate) new HttpDate("http://www.tuling123.com/openapi/api?key=5692c0d167fc5a180d092efaab578617&info=你好",//this).execute();}private void initView(){lv = (ListView) findViewById(R.id.lv);getText = (EditText) findViewById(R.id.sendText);send_btn = (Button) findViewById(R.id.send_btn);//send_btn.setOnClickListener((android.view.View.OnClickListener) this);send_btn.setOnClickListener(this);lists = new ArrayList<ListDate>();adapter = new TextAdapter(lists, this);lv.setAdapter(adapter);ListDate listDate = null ;listDate = new ListDate(getRandomWelcomeTips(),listDate.RECEIVER,getTime());lists.add(listDate);}private String getRandomWelcomeTips(){String welcome_tip = null;welcome_array = this.getResources().getStringArray(R.array.welcome_tips);//获得string。xml的欢迎语int index = (int) (Math.random()*(welcome_array.length-1));welcome_tip = welcome_array[index];return welcome_tip;}@Overridepublic void getDateUrl(String date) {// TODO 自动生成的方法存根//System.out.println(date);parseText(date);}public void parseText(String str){try {JSONObject jb = new JSONObject(str);//System.out.println(jb.getString("code"));//System.out.println(jb.getString("text"));ListDate listDate = null;listDate = new ListDate(jb.getString("text"),listDate.RECEIVER,getTime());lists.add(listDate);adapter.notifyDataSetChanged();} catch (JSONException e) {// TODO 自动生成的 catch 块e.printStackTrace();}}@Overridepublic void onClick(View v) {getTime();content_str = getText.getText().toString();getText.setText("");String dropk = content_str.replace(" ", "");String droph = dropk.replace("\n", "");ListDate listDate;listDate = new ListDate(content_str,ListDate.SEND,getTime());lists.add(listDate);//如果太多了,就移除一些if (lists.size() > 30) {for (int i = 0; i < lists.size(); i++) {lists.remove(i);}}adapter.notifyDataSetChanged();httpDate = (HttpDate) new HttpDate("http://www.tuling123.com/openapi/api?key=********&info=" +droph,this).execute();}private String getTime(){currentTime = System.currentTimeMillis();SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");Date curDate = new Date();String str = format.format(curDate);if (currentTime - oldTime > 5*60*1000) {oldTime = currentTime;return str;}else {return "";}}}

怎么做一个安卓聊天机器人

5、//HttpDate类代码package com.shenbin.person;import jav锾攒揉敫a.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import android.os.AsyncTask;public class HttpDate extends AsyncTask<String, Void, String>{private HttpClient mHttpClient; //客户端private HttpGet mHttpGet; //请求方式为getprivate String url; //请求的地址private HttpResponse mHttpResponse; //请求返还private HttpEntity mHttpEntity; //创建实体private InputStream in;private HttpGetDateListener listener; //获得接口public HttpDate(String url,HttpGetDateListener listener){this.url = url;this.listener = listener;}@Overrideprotected String doInBackground(String... arg0) {// TODO 自动生成的方法存根try {mHttpClient = new DefaultHttpClient(); //实例化客户端mHttpGet = new HttpGet(url); mHttpResponse = mHttpClient.execute(mHttpGet);mHttpEntity = mHttpResponse.getEntity();in = mHttpEntity.getContent();BufferedReader br = new BufferedReader(new InputStreamReader(in));String line = null; //获取数据StringBuffer sb = new StringBuffer();while (( line = br.readLine()) != null) {sb.append(line);}return sb.toString();} catch (Exception e) {// TODO: handle exception}return null;}@Overrideprotected void onPostExecute(String result) {// TODO 自动生成的方法存根listener.getDateUrl(result);super.onPostExecute(result);}}

怎么做一个安卓聊天机器人

6、//HttpGetDateListener类代码//接口package com.shenbin.person;public interface HttpGetDateListener {void getDateUrl(String date);}

怎么做一个安卓聊天机器人

7、//ListDate类代码package com.shenbin.person;import android.R.integer;public class ListDate {private String content;public static final int SEND = 1;public static final int RECEIVER = 2;private int flag;private String time;public ListDate(String content,int flag,String time) {// TODO 自动生成的构造函数存根setContent(content);setFlag(flag);setTime(time);}public void setContent(String content) {this.content = content;}public String getContent() {return content;}public int getFlag() {return flag;}public void setFlag(int flag) {this.flag = flag;}public String getTime() {return time;}public void setTime(String time) {this.time = time;}}

怎么做一个安卓聊天机器人

8、//TextAdapter类代码package com.shenbin.person;import java.net.ContentHan颊俄岿髭dler;import java.util.List;import javax.security.auth.PrivateCredentialPermission;import android.R.layout;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.webkit.WebView.FindListener;import android.widget.BaseAdapter;import android.widget.RelativeLayout;import android.widget.TextView;public class TextAdapter extends BaseAdapter{private List<ListDate> lists;private Context nContext;private RelativeLayout layout;public TextAdapter(List<ListDate> lists,Context nContext) {this.lists = lists;this.nContext = nContext;}@Overridepublic int getCount() {// TODO 自动生成的方法存根return lists.size();}@Overridepublic Object getItem(int pesition) {return lists.get(pesition);}@Overridepublic long getItemId(int pesition) {// TODO 自动生成的方法存根return pesition;}@Overridepublic View getView(int pesition, View converView , ViewGroup parent) {LayoutInflater inflater = LayoutInflater.from(nContext);if (lists.get(pesition).getFlag() == ListDate.RECEIVER) {layout = (RelativeLayout) inflater.inflate(R.layout.leftitem, null);}if (lists.get(pesition).getFlag() == ListDate.SEND) {layout = (RelativeLayout) inflater.inflate(R.layout.rightitem, null);}TextView tv = (TextView) layout.findViewById(R.id.tv);tv.setText(lists.get(pesition).getContent());TextView time = (TextView) layout.findViewById(R.id.time);time.setText(lists.get(pesition).getTime());return layout;}}

怎么做一个安卓聊天机器人

9、activity_main.xml的代码:<LinearLayout xmlns:android="http://sche罪焐芡拂mas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <ListView android:id="@+id/lv" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" android:divider="@null" android:listSelector="@android:color/transparent" android:transcriptMode="alwaysScroll" ></ListView> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <EditText android:id="@+id/sendText" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" /> <Button android:id="@+id/send_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/send" /> </LinearLayout></LinearLayout>

怎么做一个安卓聊天机器人

10、leftitem.xml代码<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/time" android:layout_width="fill_parent" android:gravity="center_horizontal" android:layout_height="wrap_content" /> <ImageView android:layout_below="@id/time" android:id="@+id/iv" android:layout_width="70dp" android:layout_height="70dp" android:padding="10dp" android:src="@drawable/c" /> <TextView android:layout_below="@id/time" android:layout_toRightOf="@id/iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv" android:gravity="center" android:background="@drawable/d" /> </RelativeLayout>

怎么做一个安卓聊天机器人

11、rightitem.xml代码<螋觏钎厘?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/time" android:layout_width="fill_parent" android:gravity="center_horizontal" android:layout_height="wrap_content" /> <ImageView android:layout_below="@id/time" android:layout_alignParentRight="true" android:id="@+id/iv" android:layout_width="70dp" android:layout_height="70dp" android:padding="10dp" android:src="@drawable/b" /> <TextView android:layout_below="@id/time" android:layout_toLeftOf="@id/iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv" android:gravity="center" android:background="@drawable/d" /></RelativeLayout>

怎么做一个安卓聊天机器人

12、values文件下的strings.xml代码<?xml version="1.0" encoding="utf-8"?><resources> <string name="app_name">小兵机器人</string> <string name="action_settings">Settings</string> <string name="hello_world">小兵聊天机器人</string> <string name="send">发送</string> <string-array name="welcome_tips"> <item>主人,奴婢在此等候多时了</item> <item>主人,近来可好</item> <item>欢迎归来,我亲爱的主人</item> <item>主人,我好想你啊</item> <item>主人,你越来越靓啦</item> <item>我是小兵机器人,很高兴陪你聊天</item> <item>我就是聪明,可爱的小兵机器人</item> <item>hello,美女(帅锅)</item> <item>你是我的小呀小苹果</item> <item>开心的话,可以找我聊天,不开心更要找我聊天啦</item> </string-array></resources>

怎么做一个安卓聊天机器人

13、AndroidManifest.xml的代码添加的代码为加黑的粗体。<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.shenbin.person" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <uses-permission android:name="android.permission.INTERNET"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.shenbin.person.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢