Back to project page LiSpeakMobile.
The source code is released under:
MIT License
If you think the Android project LiSpeakMobile listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package com.bmandesigns.lispeak; //from www. j a va 2 s. c o m import android.content.Intent; import android.content.SharedPreferences; import android.speech.RecognizerIntent; import android.support.v7.app.ActionBarActivity; import android.support.v4.app.Fragment; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import com.loopj.android.http.AsyncHttpClient; import com.loopj.android.http.AsyncHttpResponseHandler; import java.util.ArrayList; public class MainActivity extends ActionBarActivity { Button speak; TextView ipbox; SharedPreferences prefs; int VOICE_RECOGNITION_REQUEST_CODE = 125; void showToast(String message){ Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (savedInstanceState == null) { getSupportFragmentManager().beginTransaction() .add(R.id.container, new PlaceholderFragment()) .commit(); } speak = (Button)findViewById(R.id.button1); ipbox = (TextView)findViewById(R.id.txtIP); prefs = getSharedPreferences("MainPrefs",MODE_MULTI_PROCESS); ipbox.setText(prefs.getString("IP","0.0.0.0")); ipbox.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {} @Override public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {} @Override public void afterTextChanged(Editable editable) { prefs.edit().putString("IP",ipbox.getText().toString()).commit(); } }); speak.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { startVoiceRecognitionActivity(); } }); } private void startVoiceRecognitionActivity() { Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); //uses free form text input intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); //Puts a customized message to the prompt intent.putExtra(RecognizerIntent.EXTRA_PROMPT,"Talk"); startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE); } /** * Handles the results from the recognition activity. */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == VOICE_RECOGNITION_REQUEST_CODE && resultCode == RESULT_OK) { // Fill the list view with the strings the recognizer thought it could have heard ArrayList<String> matches = data.getStringArrayListExtra( RecognizerIntent.EXTRA_RESULTS); showToast(matches.get(0)); connect("http://" + ipbox.getText().toString() + ":45458/command/" + matches.get(0).replace(" ", "%20")); //Turn on or off bluetooth here } else { super.onActivityResult(requestCode, resultCode, data); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } /** * A placeholder fragment containing a simple view. */ public static class PlaceholderFragment extends Fragment { public PlaceholderFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_main, container, false); return rootView; } } public void connect(String url){ AsyncHttpClient client = new AsyncHttpClient(); client.get(url, new AsyncHttpResponseHandler() { @Override public void onSuccess(String response) { System.out.println(response); } }); } }