2012-03-07 95 views
-1

我有下面的代码,推出在我服务的意图:如何从服务中启动ACTION_VOICE_COMMAND Intent?

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

我得到的错误

这里是堆栈跟踪:

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语音命令提示出现。我怎样才能做到这一点?

回答

1

看来你的“设备”中没有人能够通过操作ACTION_VOICE_COMMAND来处理该意图。

您发布的代码是可以的。这是从服务推出Intents的正确方式。

+0

下面是一个简单的方法来告诉您是否有一个接收器为您的意图:http://developer.android.com/resources/articles/can-i-use-this-intent.html – Sparky 2012-03-07 21:59:32

+0

我需要添加一个intent过滤器在我的清单ACTION_VOICE_COMMAND? – 2012-03-07 23:03:19

1

你应该简单地广播这个意图。然后系统抓住它并启动语音命令应用程序。 Intent broadcast = new Intent(); broadcast.setAction(Intent.ACTION_VOICE_COMMAND); sendBroadcast(broadcast);