0

Ich bin neu bei Android und arbeite an einer Rede-zu-Text-App. Ich verwende Google API. Ich möchte zulassen, dass Benutzer nur 2 Sekunden sprechen können. Nach 2 Sekunden sollte sich das Popup-Fenster schließen. Kann mir jemand ein paar Tipps geben?Android - Tötungsabsicht nach einer gewissen Zeit

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    mic.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      promptSpeechInput(); 
     } 
    }); 
} 

public void promptSpeechInput() 
{ 
    //This intent recognize the speech 
    Intent i = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
    i.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); 
    i.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault()); 
    i.putExtra(RecognizerIntent.EXTRA_PROMPT, "Say Something"); 

    try { 
     startActivityForResult(i, 100); 
    } 
    catch (ActivityNotFoundException a) 
    { 
     Toast.makeText(MainActivity.this,"Your device does not support",Toast.LENGTH_LONG).show(); 
    } 
} 

//For receiving speech input 
public void onActivityResult(int request_code, int result_code, Intent i) 
{ 
    super.onActivityResult(request_code, result_code, i); 

    switch (request_code) 
    { 
     case 100: if(result_code == RESULT_OK && i != null) 
     { 
      ArrayList<String> result = i.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); 
      resultTEXT.setText(result.get(0)); 
     } 
      break; 
    } 
} 

Antwort

2

Sie diesen Code hinzufügen können, wo Sie den Timer und in Verfahren Lauf starten wollen, müssen Sie zum Schließen des Pop den Code schreiben, bis

new java.util.Timer().schedule( 
    new java.util.TimerTask() { 
     @Override 
     public void run() { 
      // your code here 
     } 
    }, 
    5000 
); 

Hier sind 5 Sekunden (5000 Millisekunden) Sie können es in jedem gewünschten Zeitraum in Millisekunden ändern.

-1

Try Handler innerhalb UIThread auf diese Weise können Sie verzögern, wenn das Popup-Fenster den Code closes..add das Pop-up in Lauf zu schließen():

runOnUiThread(new Runnable() { 
      @Override 
      public void run() { 
       new Handler().postDelayed(new Runnable() { 
        @Override 
        public void run() { 
         //close the window pop-up here 
        } 
       }, 2000); 
      } 
     }); 

hoffen, dass es

+0

hilft, sollten Sie Geben Sie einige Informationen oder eine Beschreibung Ihrer Antwort an und was Sie mit Ihrem Code lösen möchten, erklären Sie ein wenig. – Robert

+0

warum die down vote? – ukama

Verwandte Themen