Не найдено ни одного действия для обработки намерения - PullRequest
6 голосов
/ 28 февраля 2012

Исключение было сгенерировано в следующем коде:

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

Я гуглил и обнаружил, что это из-за отсутствует приложение голосового поиска от Google на устройстве, которым я являюсьс помощью.и я мог бы решить эту проблему, установив приложение вручную, но как я могу установить apk программно, например, импортировать какую-нибудь библиотеку или другую ~
Большое спасибо.

Ответы [ 2 ]

7 голосов
/ 28 февраля 2012

открыть ссылку приложения (которое вы хотите использовать) в веб-представлении

как

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

}

заменить APP_PACKAGE_NAME в https://market.android.com/details?id=APP_PACKAGE_NAME на имя пакета приложения voice rcognition applicationatioна рынке

3 голосов
/ 08 июля 2016

Решение Випина работает.Я лично использовал это в качестве своего APP_PACKAGE_NAME: com.google.android.googlequicksearchbox

Поэтому, чтобы подвести итог полного решения, вы должны сделать следующее: (Я немного изменил его, чтобы сначала попробовать схему market://, а затем выполнить откат на https:// если не получится.)

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