不是说找不到对应的Activity了嘛
解决方案 »
- 开机启动后台进程检测是否有文件被下载
- Android开发平台有哪些
- 关于谷歌地图的请教 调用系统谷歌
- 对于复制android手机系统文件到PC上各位大牛有什么好办法!!!
- android 源码的飞行模式问题???
- 怎么调用android底层的Java Class?
- android调用webservice出现java.io.IOException
- android如何实现在图片上像地图一样在指定的位置上定位
- Android开发在Service操作SQLite数据库出现NullPointerException空指针异常
- 刚到公司,接手了别人写的代码
- 机顶盒安卓系统与手机安卓系统的区别是什么?
- 关于非UI线程更新UI遇到的一些问题
Intent intent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION);
反正你提供的有错误
import java.util.ArrayList;
import java.util.Date;import cn.Wongxming.weather.WeatherForecast;
import DB.DBManager;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.os.StrictMode;
import android.speech.RecognizerIntent;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
public class VoiceActivity extends Activity implements OnInitListener{
private Button reButton,voiceButton;
private int MY_DATA_CHECK_CODE = 0;
private SocketClient client;
private TextToSpeech tts;
private String text;
private ImageView ivAnimView;
private AnimationDrawable animationDrawable;
private static final int VOICE_RECOGNITION_REQUEST_CODE_1 = 1234;
private ArrayList<String> matches=new ArrayList<String>();
@SuppressLint("NewApi")
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.voiceactivity);
///////////////////////////////////////
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() //构造StrictMode
.detectDiskReads() //当发生磁盘读操作时输出
.detectDiskWrites()//当发生磁盘写操作时输出
.detectNetwork() //访问网络时输出,这里可以替换为detectAll() 就包括了磁盘读写和网络I/O
.penaltyLog() //以日志的方式输出
.build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects() //探测SQLite数据库操作
.penaltyLog() //以日志的方式输出
.penaltyDeath()
.build());
////////////////////////////////////////////////
// getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.titlebar);
reButton=(Button)findViewById(R.id.pause4);
voiceButton=(Button)findViewById(R.id.voicestart);
ivAnimView = (ImageView) findViewById(R.id.voiceView);
client=new SocketClient();
reButton.setOnClickListener(new OnClickListener(){
public void onClick(View v){
Intent mIntent = new Intent();
mIntent.setClass( VoiceActivity.this,Mainmenu.class);
VoiceActivity.this.startActivity(mIntent);
tts.shutdown();
VoiceActivity.this.finish();
}
});
voiceButton.setOnClickListener(new OnClickListener(){
public void onClick(View v){
startVoiceRecognitionActivity();
}});
Intent checkIntent = new Intent();
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);
}
public void startVoiceRecognitionActivity(){
//经过进程Intent通报语音辨认的情势
try{
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
//语音辨认
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
//提示语音
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Speech recognition demo");
//Intent、语音辨认
startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE_1);
}catch (Exception e){
// TODO: handle exception
e.printStackTrace();
Toast.makeText(getApplicationContext(), "找不到语音设备", 1).show();}
}
//回调函数onActivityResult
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if (requestCode == VOICE_RECOGNITION_REQUEST_CODE_1 && resultCode == RESULT_OK)
{
// 得到语音的字符
matches =data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
if(matches.size()<=0)text="";
else text=matches.get(0).toString();
String anwser=getanswer();
String[] biaoqing=anwser.split("/");
if (biaoqing[0]!=null && biaoqing[0].length()>0)
{if(biaoqing[0].equals("时间"))
tts.speak(getDate(), TextToSpeech.QUEUE_FLUSH, null);else if(biaoqing[0].equals("天气")){
tts.speak("让我们一起去看看吧!", TextToSpeech.QUEUE_FLUSH, null);
Intent mIntent = new Intent();
mIntent.setClass( VoiceActivity.this,WeatherForecast.class);
VoiceActivity.this.startActivity(mIntent);
VoiceActivity.this.finish();
}else{
float biaoqingnum=Float.valueOf(biaoqing[1]);
tts.speak(biaoqing[0], TextToSpeech.QUEUE_FLUSH, null);
if(biaoqingnum>0.6)
getbiaoqingnum(R.anim.frame_voiceanimation_happy);
if(biaoqingnum<(-0.6))
getbiaoqingnum(R.anim.frame_voiceanimation_angry);
if(biaoqingnum<(-0.3)&&biaoqingnum>(-0.6))
getbiaoqingnum(R.anim.frame_voiceanimation_cry);
if(biaoqingnum<(0.3)&&biaoqingnum>(-0.3))
ivAnimView.setBackgroundResource(R.drawable.man);
}
if(!tts.isSpeaking()){
animationDrawable.stop();
ivAnimView.setBackgroundResource(R.drawable.man);
}
}
super.onActivityResult(requestCode, resultCode, data);
}
if (requestCode == MY_DATA_CHECK_CODE) {
if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
// success, create the TTS instance
tts = new TextToSpeech(this, this);
}
else {
// missing data, install it
Intent installIntent = new Intent();
installIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivity(installIntent);
}
}
}
public void getbiaoqingnum(int num){
ivAnimView.setBackgroundResource(num);
Object backgroundObject = ivAnimView.getBackground();
animationDrawable = (AnimationDrawable) backgroundObject;
animationDrawable.setOneShot(false);
animationDrawable.stop();
animationDrawable.start();
}
public String getanswer(){
String endstr=text.substring(text.length()-1, text.length());
if(endstr.equals("啊")||endstr.equals("哦"))
text=text.substring(0,text.length()-1);
DBManager dbmanager=new DBManager(VoiceActivity.this);//启动数据库
String anwser=dbmanager.query(text);//查询
dbmanager.closeDatabase();//关闭数据库
if(anwser==""||anwser.equals(null))
{
text=text+ "\r\n";
try{
if(client.ConnectSever("172.22.251.1"))
{
client.setmessage(text);
anwser=client.getmessage();
}
if(client.CloseSocket())
System.out.println("SocketClient close sueccess");
else System.out.println("SocketClient close false");
} catch (Exception e) {
e.printStackTrace();
}
}
return anwser;
}
@Override
public void onInit(int status) {
// TODO Auto-generated method stub
}
@Override
protected void onDestroy() {
super.onDestroy();
tts.shutdown(); } private String getDate(){
SimpleDateFormat sdf =new SimpleDateFormat("MM-dd HH:mm");
Date d = new Date();
return sdf.format(d);
}
}
你调用的是谷歌的语音是吧。可能机子里ROM阉割了谷歌语音,还有被墙
语音功能推荐用科大讯飞的,或者百度的。
你调用的是谷歌的语音是吧。可能机子里ROM阉割了谷歌语音,还有被墙
语音功能推荐用科大讯飞的,或者百度的。
我安装了讯飞,但是怎么调用起来啊,不会用这东西
你调用的是谷歌的语音是吧。可能机子里ROM阉割了谷歌语音,还有被墙
语音功能推荐用科大讯飞的,或者百度的。
我安装了讯飞,但是怎么调用起来啊,不会用这东西
申请科大讯飞开发者->下载SDK和Demo->Demo跑起来……
看Demo的代码。看他的IatDemo语音分析那部分,工作基本都是云端进行的。你只能改改UI之类的
你调用的是谷歌的语音是吧。可能机子里ROM阉割了谷歌语音,还有被墙
语音功能推荐用科大讯飞的,或者百度的。
我安装了讯飞,但是怎么调用起来啊,不会用这东西
申请科大讯飞开发者->下载SDK和Demo->Demo跑起来……
看Demo的代码。看他的IatDemo语音分析那部分,工作基本都是云端进行的。你只能改改UI之类的
这样。。 谢啦