2012-02-28 18 views
5

Wyjątkiem był rzucony w poniższym kodzie:Nie stwierdzono aktywny uchwyt Intent {act = android.speech.action.RECOGNIZE_SPEECH (posiada dodatki)}

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"); 
startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);. 

Mam google i okazało się, że to z powodu the voice search app z google brakuje na urządzeniu, którego używam. i mogę rozwiązać problem, instalując aplikację ręcznie, ale jak mogę zainstalować program, np. importować bibliotekę lub inny ~
Wielkie dzięki.

Odpowiedz

5

otwarte link do aplikacji (którego chcesz używać) w widoku internetowej

jak

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"); 
startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);. 
} 
catch(ActivityNotFoundException e) 
{ 
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://market.android.com/details?id=APP_PACKAGE_NAME")); 
startActivity(browserIntent); 

} 

zastąpić APP_PACKAGE_NAME w https://market.android.com/details?id=APP_PACKAGE_NAME z rcognition głos nazwy pakietu ZASTOSOWA na rynku

+0

dziękuję za odpowiedź vipin, ale czy mogę dodać moduł głosowy jako część mojego apk. – Bolton

+0

tak, możesz na pewno ale do tego trzeba napisać cały kod dla tego na własną – vipin

+0

@vipin Kiedy mówisz APP_PACKAGE_NAME, czy są domyślne, które znasz? Mam na myśli, że działa dobrze na moich innych urządzeniach, ale w przypadku Sony Experia Mini rozpoznawanie mowy nie działa. Chciałbym skierować użytkownika na domyślne rozpoznawanie mowy od Google. –

1

rozwiązanie Vipin za Prace. Osobiście użył tego jako mojego APP_PACKAGE_NAME: com.google.android.googlequicksearchbox

Przypomnę więc pełne rozwiązanie byłoby wykonać następujące czynności: (I zmodyfikowane go trochę, aby najpierw spróbować schematu a potem awaryjne na https:// jeśli to się nie uda.)

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"); 
    startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);. 
} catch(ActivityNotFoundException e) { 
    String appPackageName = "com.google.android.googlequicksearchbox"; 
    try { 
     startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName))); 
    } catch (android.content.ActivityNotFoundException anfe) { 
     startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName))); 
    } 
}