2
我想實現一個廣播接收器誰應該從後臺運行的服務接收意向,但它不工作。廣播接收器沒有通過服務接收意圖
在我的主要活動中,我只是綁定服務並通過按鈕上的onClick
啓動它。
在我的SpeechRecognizer
服務類中,我創建了一個新的BroadcastReceiver
(請參閱下面的代碼)。
public void onCreate() {
Log.d(TAG, "onCreate");
if (SpeechRecognizer.isRecognitionAvailable(this)){ //check if a SpeechRecognizer is available
this.sr = SpeechRecognizer.createSpeechRecognizer(this);
this.sr.setRecognitionListener(new listener());
commandsReceiver = new CommandsReceiver();
ConnectivityManager cm =(ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
testfilter = new IntentFilter();
registerReceiver(commandsReceiver,testfilter);
} else {
Toast.makeText(this,"Please install a SpeechRecognizer on your system.", Toast.LENGTH_LONG).show(); //alert if speech-recognizer is not installed on the device
Log.d(TAG, "no SpeechRecognizer available");
this.onDestroy();
}
}
在我onResult
我不喜歡這樣寫道:
Intent intent = new Intent();
intent.setAction(CommandsReceiver.TEST);
sendBroadcast(intent);
在我CommandsReceiver
我只是有一個簡單的String
和日誌消息:
public class CommandsReceiver extends BroadcastReceiver {
public static final String TEST = "de.speech.TEST_INTENT";
@Override
public void onReceive(Context context, Intent intent) {
Log.d("BroadCastReceiver", "Intent received"+intent);
}
}
不過我沒有收到消息Log.d()
。
我希望你能幫助我。
啊您的權利,我必須要盲目....現在它的工作 –
因爲你是一個新用戶,你沒有檢查任何答案。更好地開始檢查標記你滿意的答案。所以,未來的用戶可以知道這個答案已經被回答。 –
感謝您的建議,我會牢記這一點 –