2012-03-07 96 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);