在给我们的Siri添加小I的接口之后,感觉它还是不够智能,无法像Iphone的Siri一样功能强大。可是国内我依旧没有找到一个能够强大如苹果Siri的服务器,所以只能退而求其次,我引入了”虫洞“的开放API,网站http://www.uzoo.cn/,这是一个功能很强大的接口,可以根据你提供的关键字进行网络搜索,反馈给你答案,官方上的描述:

·支持生活、教育、娱乐等最常使用的几十种功能;
     ·功能包括:公交、百科、提问、报价、翻译、快讯、歌词、余票……
     ·自动识别IP地址,查询公交、天气等功能时可以免输入关键词(城市名)
     ·可查询全国各地周边的餐馆、酒店、银行、学校、机关单位、娱乐场所……
     ·可选择推送流行IN语、生活小知识、笑话……

这个完全可以实现很智能的功能,但是有一个很致命的缺陷,由于太过智能了,不能实现基本的聊天功能,比如你发句”你好“,它就会在百度百科里给你搜索返回一个你好的详细解释。冏,

~_~!所以我们只好刚柔兼并,区分用于无聊调戏的聊天模式以及正常使用的问答模式。好啦,言归正传,今天我们就来实现用于问答模式的虫洞开放API~~详细信息请查询:

http://www.uzoo.cn/web201012/kaifangAPI.jsp

顺便提一句:他们官方QQ交流群里的人都很热情,特别是光年5号,哈哈,耐心回答了我很多问题,感谢一下~~~

虫洞的接口是开放的API,所以使用起来方便多了~

接口地址:

http://wap.unidust.cn/api/searchout.do

参数表:

是否必需

字段名

名称

类型

说明

info

查询内容

Text

查询内容,建议采取post方式传参

type

请求类型

CHAR(6)

web或者wap或者client

ch

渠道代码

CHAR(5)

以区分请求来源

appid

应用id

CHAR(12)

等同于分类关键字,若为空则后台自动进行判断

使用起来很简单:

private String WebAPI_Path= "http://wap.unidust.cn/api/searchout.do?type=wap&ch=1001&info=";
String  strQuestion = WebAPI_Path+ question;  

直接在开放的API接口后边添加问题,然后接收反馈就行了。

例如”http://wap.unidust.cn/api/searchout.do?type=wap&ch=1001&info=深圳时间“

需要特别注意下的是,反馈回来是数据是UTF-8格式的,所以对于反馈回来的数据需要进行下编码的转换:

String str = EntityUtils.toString(httpResponse.getEntity());
ult = new String(str.getBytes("ISO-8859-1"), "UTF-8");  

由于反馈回来的数据中包含一些不需要的数据,所以需要裁剪下:

public Spanned getAnswer(String question){
String  result=getResult(question);
int  firstIndex=result.indexOf("<br/>")+"<br/>".length();
int  lastIndex=result.lastIndexOf("<br/>");
return  Html.fromHtml(result.substring(firstIndex,lastIndex));
}  

这样就完成了虫洞这个接口的调用,更多复杂的功能,期待着你去开发~~

本文完整代码:

public class ChongDong {  private String WebAPI_Path = "http://wap.unidust.cn/api/searchout.do?type=wap&ch=1001&info=";  private HttpClient httpClient = null;  Handler mHandler;  private ProgressDialog mProgressDialog;  Context mContext;  public ChongDong(Context context,Handler handler){  mContext=context;  mHandler=handler;  }  public String getResult(String question) {  String strResult = null;  HttpParams httpParams = new BasicHttpParams();  HttpConnectionParams.setConnectionTimeout(httpParams, 30000);  HttpConnectionParams.setSoTimeout(httpParams, 30000);  httpClient = new DefaultHttpClient(httpParams);  try {  String strQuestion = WebAPI_Path + question;  HttpGet httpRequest = new HttpGet(strQuestion);  HttpResponse httpResponse = httpClient.execute(httpRequest);  if (httpResponse.getStatusLine().getStatusCode() == HttpURLConnection.HTTP_OK) {  String str = EntityUtils.toString(httpResponse.getEntity());  strResult = new String(str.getBytes("ISO-8859-1"), "UTF-8");  }  } catch (ClientProtocolException e) {  // TODO Auto-generated catch block  e.printStackTrace();  } catch (IOException e) {  // TODO Auto-generated catch block  e.printStackTrace();  } finally {  return strResult;  }  }  public Spanned getAnswer(String question){  String result=getResult(question);  int firstIndex=result.indexOf("<br/>")+5;  //  int secondIndex=result.indexOf("<br/>", firstIndex)+5;  int lastIndex=result.lastIndexOf("<br/>");  /*if(lastIndex>secondIndex) return Html.fromHtml(result.substring(secondIndex,lastIndex)); else*/  return Html.fromHtml(result.substring(firstIndex,lastIndex));  }  public void handleAnswer(String question) {  mProgressDialog =new ProgressDialog(mContext);  mProgressDialog.setMessage("这个问题有点难,让我好好想想");  mProgressDialog.setCancelable(false);  mProgressDialog.show();   new ThreadProcess(question).start();  }  class ThreadProcess extends Thread  {  String question=null;  public ThreadProcess(String quest){  question=quest;  }  public void run() {   String result=getResult(question);  Message message = new Message();  message.what = 2013;  message.obj =getAnswer(result);  mHandler.sendMessage(message);  mProgressDialog.dismiss();  }    }
} 

原文地址:点击打开链接

打造Android的中文Siri语音助手(二)——添加虫洞的开放API相关推荐

  1. 打造Android的中文Siri语音助手

    打造Android的中文Siri语音助手(一)--小I机器人的接口 分类: android2011-12-02 14:10 7879人阅读 评论(44) 收藏 举报 androidstringpath ...

  2. 打造Android的中文Siri语音助手(一)——小I机器人的接口

    Iphone4S的Siri让人眼前一亮,网上出现了无数调戏Siri的视频.真是让android用户们心痒不已.好在随后android阵营中的高手迅速反击,推出了Iris.悲剧的是Iris仅支持英文,让 ...

  3. java可以编写siri_打造Android的中文Siri语音助手(一)

    public class XiaoI { private String Webbot_Path = "http://webbot.xiaoi.com/engine/widget1007/we ...

  4. 震惊!苹果Siri语音助手再次被诉专利侵权

    近日,专利持有公司 Parus Holdings 上周提起诉讼,称苹果的 Siri语音助手侵犯了其语音设备网络搜索方法相关专利. 图片来源于网络 Parus Holdings 声称Siri语音助手侵犯 ...

  5. 苹果风波不断,Siri语音助手面临隐私诉讼

    整理 | 祝涛 出品 | CSDN(ID:CSDNnews) 美国地方法院法官Jeffrey White裁定,针对苹果公司的一起诉讼将继续进行,该诉讼称苹果语音助手Siri侵犯了用户隐私,但驳回了根据 ...

  6. 苹果电脑如何使用Siri语音助手!

    Mac 上的 Siri 也是您的智能个人助理,可帮您进行多任务处理和完成各项事务.例如,在您处理文稿期间,Mac 上的 Siri 可帮助您执行日常任务,如获取问题的快速答案.播放音乐等.您可以询问 S ...

  7. 电脑生成siri语音_Mac使用技巧:怎么使用siri语音助手?

    与您其他 Apple 设备上的 Siri 一样,Mac 上的 Siri 也是您的智能个人助理,可帮您进行多任务处理和完成各项事务.例如,在您处理文稿期间,Mac 上的 Siri 可帮助您执行日常任务, ...

  8. 苹果宣布将把语音助手Siri整合到Apple Music服务中

    10月19日消息,据国外媒体报道,在周二举行的苹果发布会上,苹果宣布将把语音助手Siri整合到Apple Music服务中. 此外,该公司还将推出Apple Music Voice Plan套餐计划, ...

  9. 苹果对其语音助手Siri进行显著改进:今秋将有7大新功能

    据国外媒体报道,在当地时间周一举行的年度开发者大会上,苹果谈论了很多,但它没有花太多时间讨论Siri语音助手的变化.令人惊讶的是,从iPhone到CarPlay再到Apple TV,Siri在苹果产品 ...

最新文章

  1. LogMeIn远程控制
  2. ArcGIS GDB中要素类不可编辑
  3. 残酷的生命,严峻的人生,短暂的美好
  4. lammps学习总结3
  5. MMORPG开发之七日创世说(二)
  6. 微信小程序-婚礼邀请函页面
  7. javascript第六周总结
  8. 科目二考试的只言片语
  9. 索尼ps4 linux,索尼PS4
  10. redis数据类型之GEO
  11. LaTeX编辑中文论文,公式、图表、参考文献添加超链接
  12. HDLBits(4) Procedures合集
  13. Use case or User story (下)
  14. 产品经理培训行业---以起点学院为主体的相关竞品分析报告
  15. 基于蒙特卡诺和拉格朗日乘子法的电动车调度【有序、无序充放电】【Matlab代码】
  16. 分布式原理与实战(四) 以FDB为例之同步化
  17. 解决win10笔记本电脑无法开启热点
  18. 浏览器群控android手机软件STF试玩
  19. 基于MFC海康威视摄像头Demo(含抓图显示|不含云台)
  20. 程序员收到阿里offer,提离职被怒:为年薪百万连兄弟都不做啦!

热门文章

  1. 迅雷U享php文件怎么打开,windows下php运行环境安装配置
  2. Ubuntu 10.04下安装Google拼音输入法
  3. 安科瑞变电站综合自动化系统在助力变电站实现综合自动化
  4. 雷军称37岁财务自由,小米造车是被逼出来的决定;Adobe约200亿美元收购Figma;首批iPhone 14已发货|极客头条...
  5. thinkphp一键清除缓存的方法
  6. wfGo 围棋 棋谱研究模式
  7. 学习机赛道加速:请“卷”产品,不要“卷”营销
  8. 无盘 办公 服务器配置,无盘 办公 服务器配置
  9. 下列哪个不属于CRF模型对于HMM和MEMM模型的优势( )
  10. 【Java】Iterable、Collection、List 的常见方法签名以及含义