2016-02-17 1 views
0

Je veux utiliser l'interrupteur à bascule par des commandes vocales comme allumer et éteindre donc j'ai un code pour la reconnaissance vocale d'un site, mais ne sais pas comment déclencher mon bouton à bascule à traverscomment utiliser interrupteur à bascule par le résultat de la reconnaissance vocale

Le code de reconnaissance vocale i utilisée -

package com.authorwjf.talk2me; 

import java.util.ArrayList; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.speech.RecognizerIntent; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.TextView; 
import android.widget.Toast; 

public class MainActivity extends Activity implements OnClickListener { 

protected static final int REQUEST_OK = 1; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    findViewById(R.id.button1).setOnClickListener(this); 
} 

@Override 
public void onClick(View v) { 
    Intent i = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
    i.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, "en-US"); 
    try { 
     startActivityForResult(i, REQUEST_OK); 
    } catch (Exception e) { 
     Toast.makeText(this, "Error initializing speech to text engine.", Toast.LENGTH_LONG).show(); 
    } 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode==REQUEST_OK && resultCode==RESULT_OK) { 
     ArrayList<String> thingsYouSaid = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); 
     ((TextView)findViewById(R.id.text1)).setText(thingsYouSaid.get(0)); 



    } 
} 

}

Répondre

1

votre tableau thingsYouSaid ont tous tableau de chaînes possibles que vous avez. par exemple si je dis hello il aura comme [hello,aloe,hallo,no] alors ce que vous avez à faire est que vous pouvez faire correspondre votre chaîne switch off au tableau de chaînes de résultats et si elle correspond à "switch off" comme changer la valeur de votre commutateur de la même manière;

if (requestCode==REQUEST_OK && resultCode==RESULT_OK) { 
      ArrayList<String> thingsYouSaid = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); 

    for(String value : thingsYouSaid.get(0)){ 

    if(value.equalsignorecase("switch off")){ 
     // change value for switch to off 

     break; 
    } 
    else if(value.equalsignorecase("switch on")){ 
    // change value for switch to on 
    break; 
    } 


} 
+0

Puis-je avoir le code exact plz que vous avez dit de faire –

+0

je viens copyed que le code d'un site je n'ai pas knowlege sur java, donc je dois le code que je peux ajouter au code de l'application –

+0

@KartikRana voir ma réponse mise à jour. – KDeogharkar