Как я могу запустить намерение ACTION_VOICE_COMMAND из службы? - PullRequest
0 голосов
/ 08 марта 2012

У меня есть следующий код для запуска намерения в моем сервисе:

Intent voiceCommandIntent = new Intent(Intent.ACTION_VOICE_COMMAND);
            voiceCommandIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            appContext.startActivity(voiceCommandIntent);

Я получаю ошибку

No Activity Found to Handle Intent

Вот трассировка стека:

03-07 20:12:56.796: W/System.err(18401): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VOICE_COMMAND flg=0x10000000 }
03-07 20:12:56.796: I/ActivityManager(1120): Starting activity: Intent { act=android.intent.action.VOICE_COMMAND flg=0x10000000 }
03-07 20:12:56.802: W/System.err(18401):    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1408)
03-07 20:12:56.802: W/System.err(18401):    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1378)
03-07 20:12:56.802: W/System.err(18401):    at android.app.ContextImpl.startActivity(ContextImpl.java:649)
03-07 20:12:56.802: W/System.err(18401):    at android.content.ContextWrapper.startActivity(ContextWrapper.java:258)
03-07 20:12:56.802: W/System.err(18401):    at com.sonrlabs.test.sonr.UserActionHandler.processUserCommand(UserActionHandler.java:153)
03-07 20:12:56.802: W/System.err(18401):    at com.sonrlabs.test.sonr.UserActionHandler.processAction(UserActionHandler.java:72)
03-07 20:12:56.802: W/System.err(18401):    at com.sonrlabs.test.sonr.AudioProcessorQueue.handleAction(AudioProcessorQueue.java:54)
03-07 20:12:56.802: W/System.err(18401):    at com.sonrlabs.test.sonr.AudioProcessorQueue.processAction(AudioProcessorQueue.java:33)
03-07 20:12:56.802: W/System.err(18401):    at com.sonrlabs.test.sonr.signal.SignalConstructor.processSignalIfMatch(SignalConstructor.java:50)
03-07 20:12:56.802: W/System.err(18401):    at com.sonrlabs.test.sonr.signal.TransmissionFinder.processSample(TransmissionFinder.java:29)
03-07 20:12:56.802: W/System.err(18401):    at com.sonrlabs.test.sonr.signal.TransmissionFinder.nextSample(TransmissionFinder.java:23)
03-07 20:12:56.802: W/System.err(18401):    at com.sonrlabs.test.sonr.signal.TransmissionPreprocessor.nextSample(TransmissionPreprocessor.java:38)
03-07 20:12:56.802: W/System.err(18401):    at com.sonrlabs.test.sonr.signal.AudioProcessor.nextSamples(AudioProcessor.java:22)
03-07 20:12:56.802: W/System.err(18401):    at com.sonrlabs.test.sonr.AudioProcessorQueue.run(AudioProcessorQueue.java:82)

Я просто хочу, чтобы появилась голосовая командная строка Android. Как я могу это сделать?

Ответы [ 2 ]

2 голосов
/ 20 сентября 2014

Вы должны просто передать намерение. затем система захватывает его и запускает приложение голосовых команд. Намеренная трансляция = новое намерение (); broadcast.setAction (Intent.ACTION_VOICE_COMMAND); sendBroadcast (трансляция);

1 голос
/ 08 марта 2012

Кажется, что никто в вашем "устройстве" не может обработать это намерение с помощью действия ACTION_VOICE_COMMAND.

Код, который вы разместили, в порядке.Это правильный способ запуска Интентов из Сервиса.

...