2012-02-28 14 views
5

La excepción fue lanzado en el siguiente código:no hemos encontrado actividad de manejar Intención {act = android.speech.action.RECOGNIZE_SPEECH (tiene extras)}

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);. 

Googled y encontraron que es a causa de the voice search app de Google falta en el dispositivo que estoy usando. y pude resolver el problema instalando la aplicación manualmente, pero ¿cómo puedo obtener el apk instalado de manera programática, como importar alguna biblioteca u otra ~
Muchas gracias.

Respuesta

5

abrir el enlace de la aplicación (que desea utilizar) en vista web

como

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); 

} 

reemplazar APP_PACKAGE_NAME en https://market.android.com/details?id=APP_PACKAGE_NAME con el rcognition voz el nombre del paquete applicatio en el mercado

+0

gracias por su respuesta vipin, pero podría agregar el módulo de voz como parte de mi apk. – Bolton

+0

sí puede estar seguro pero para eso tiene que escribir todo el código para esto en su propio – vipin

+0

@vipin Cuando dice APP_PACKAGE_NAME, ¿hay alguno por defecto que conozca? Quiero decir que funciona bien en mis otros dispositivos, pero para Sony Experia Mini el reconocimiento de voz no funciona. Así que me gustaría señalar al usuario el reconocimiento de voz predeterminado de Google. –

1

solución de Vipin trabajos. Yo personalmente utilizado esto como mi APP_PACKAGE_NAME: com.google.android.googlequicksearchbox

Así que para recapitular la solución completa que haría lo siguiente: (he modificado un poco para probar primero el esquema primero y entonces usar en el https:// si eso no funciona.)

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))); 
    } 
} 
Cuestiones relacionadas