endoooのブログ

endoooのブログ

ブログの説明を入力します。

Amebaでブログを始めよう!

public class SubActivity extends Activity{
private static final OnCheckedChangeListener OnCheckedChangeListener = null;
private static final OnCheckedChangeListener CheckBoxOnChangeListener = null;
private CheckBox mCheckbox;
private TextView mTextView;
private SpeechRecognizer mSpeechRecognaizer;
private boolean RecEnable = false;


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sub);
setTitle("SubActivity");


mCheckbox = (CheckBox) findViewById(R.id.checkbox1);
mCheckbox.setOnCheckedChangeListener(CheckBoxOnChangeListener);

mTextView = (TextView)findViewById(R.id.textView1);

mSpeechRecognaizer = SpeechRecognizer.createSpeechRecognizer(this);
mSpeechRecognaizer.setRecognitionListener(new mRecognitionListener());

}

class CheckBoxOnChangeListener implements CompoundButton.OnCheckedChangeListener{
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked){
if(mCheckbox.isChecked()){
RecEnable=true;
startVr();
}else{
RecEnable=false;
}
}

//音声認識を開始

private void startVr() {
if(RecEnable==true){
try{

Intent intent = new Intent(
RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(
RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, getPackageName());
mSpeechRecognaizer.startListening(intent);
} catch (Exception e) {
String TAG = null;
Log.e(TAG, e.getMessage());
}
}
}

//正常認識時
@Override
public void onResults(Bundle results){
Log.d(TAG, "onResults");
boolean isComExist=false;
String command = "";
ArrayList<String>recData
= results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
String str = new String();
for (String s : recData) {
str += s + "";
if(s.equals("メイン画面へ進む")){
Log.d(TAG, "HELLO");
isComExist=true;
command = "メイン画面へ進む";
}else{
Log.d(TAG, "no command");
}
}


Intent intent = new Intent(SubActivity.this,MainActivity.class);

if(isComExist == true){
Log.d(TAG, "isComExist=true");


if(command == "メイン画面へ進む")startActivity(intent);

}
//認識結果を表示
mTextView.setText(str);

//認識再開
startVr();
}
}
}
}