宅男宅女福利--智能聊天(一)
来源:互联网 发布:淘宝等级贷款 编辑:程序博客网 时间:2024/03/28 22:41
前言
晚上寂寞的时候,没有女朋友怎么办?没有男朋友的又怎么度过每月的14号情人节。上陌陌约炮去?还不如自己做个懂我的智能聊天应用–你的寂寞好助手:)
说干就干吧!
百度了一下,目前智能聊天Api平台比较出名的有SimSimi和图灵机器人。SimSimi是需要收费的,因此我果断选择图灵机器人。图灵机器人账号的注册和创建都不需要我多说了,接着就是创建机器人了,点击个人中心->我的机器人->创建机器人->自定义,ok至此创建完毕。
接下来我们来构建我们的安卓应用。根据开发文档,我们知道发送请求是http post方式的,这就足够了。
第一步,导入包,配置build.gradle,添加相应的权限.
导入包应该不需要我详细说了吧,其余的可以查看图灵机器人的开发文档。这里我添加了第三方封装的http包。其实可以用我们之前学的volley框架来实现,但为了扩展大家的知识面,和更便捷的开发,这里就使用yangfuhai的afinal开源库框架。大家可以查看他的开发文档,是中文的哦!
好了废话不多说,进入代码模式。
在布局里放入一个button控件,点击事件我命名为ClickUp。接着就是进入主活动里进行编写啦。
//定义 String talksomething="你好";//你要请求的数据 JavaBean javaBean=new JavaBean(); //返回的请求码的json格式的数据 Bean100000 bean100000=new Bean100000(); //返回码是100000的请求码的json格式的数据 Bean200000 bean200000=new Bean200000(); //返回值是200000的的请求码的json格式的数据 Bean302000 bean302000=new Bean302000(); //返回值是302000的的请求码的json格式的数据 Bean308000 bean308000=new Bean308000(); //返回值是308000的的请求码的json格式的数据 Object c=new Object();//返回的json数据 int AboutTalkingNumber;//返回的请求码
编写各类函数。
public class JavaBean { private int code; public int getCode() { return code; } public void setCode(int code) { this.code = code; }}
public class Bean100000 { /** * code : 100000 * text : 你也好 嘻嘻 */ 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; }}
Bean200000.java、Bean302000.java、Bean308000.java和Bean100000.java差不多类似的,大家可以去看图灵机器人的开发文档,把json数据利用Gson进行解析。
发送请求功能的实现
public void httppost(String s){ String url="http://www.tuling123.com/openapi/api"; //请求地址 AjaxParams params=new AjaxParams(); params.put("key","你的APIKey");//你的应用密钥 params.put("info",s);//发送请求饿数据 FinalHttp finalHttp=new FinalHttp(); finalHttp.post(url, params, new AjaxCallBack() { @Override public void onSuccess(Object o) { c=o;//获得返回的json数据 javaBean=GsonImpl.get().toObject(o.toString(),JavaBean.class); //解析返回的json数据 AboutTalkingNumber=javaBean.getCode(); //获取返回码 BeanBean(AboutTalkingNumber); //根据返回码,解析各种类型的json数据 Toast.makeText(MainActivity.this,talkText,Toast.LENGTH_LONG).show(); } }); }
上一步,我们提到了BeanBean函数
实现原理
public void BeanBean(int i){ switch(i){ case 100000: bean100000=GsonImpl.get().toObject(c.toString(),Bean100000.class); talkText=bean100000.getText(); break; case 200000: //类似bean100000,根据json数据自己编写 break; case 302000: //类似bean100000,根据json数据自己编写 break; case 308000: //类似bean100000,根据json数据自己编写 break; } }
在点击事件ClickUp里调用httppost()函数;
httppost(talksomething);
至此,聊天机器人的功能大致实现了,但是还不够,怎么让界面更加好看呢?比如实现qq聊天界面的样子,我们下期再讲。
授人以鱼不如授人以渔,为了让大家有更多的思考空间,更好的挖掘自己的潜能,这里我就不发布源码了。
0 0
- 宅男宅女福利--智能聊天(一)
- 安卓智能聊天机器人开发(一)
- 智能聊天
- 聊天程序(一)
- 智能聊天机器人小黄鸡
- 智能聊天机器人
- 智能聊天机器人
- 智能聊天机器人
- 智能聊天机器人
- Android--智能机器人聊天
- android智能聊天机器人
- 智能指针(一)
- 微信小程序语音聊天智能对话(源码分享)
- 高智能聊天机器人 --英国
- 《智能聊天机器人小燕子》发布
- java 实现小黄鸡智能聊天
- 智能聊天机器人的接口
- 图灵机器人智能聊天
- Android Studio 运行代码时device不能识别genymotion设备
- kali linux metasploit的web渗透测试(一)
- Android JNI 开发
- socket 实现最小化组播(多播)程序
- nim博弈2: hiho1172
- 宅男宅女福利--智能聊天(一)
- Linux下的内存分配
- 信号处理与信号产生电路引言
- jquery刷新页面
- 如何判断论文真正被EI收录? 国际会议都会EI检索吗?IEEE的国际会议,EI数据库核心
- week8(第二波搜索进阶) A -hdu 2553 N皇后问题
- PHP DOM创建生成一个XML文件
- React native的一点浅见
- label {树形dp+机智的优化}