私は電話番号の呼び出し、他のアプリケーションのオープン、設定の切り替えなど多くのイベントを処理するために音声認識を使用するアプリケーションを開発しようとしています。音声コマンドを使用してアンドロイドで別のアプリケーションを開きますか?
今まで私が行ったことは、 、私はこだわっています場所は、今まで他のアプリケーション
私のコードを開く方法です:
今、あなたは、私が最初の単語として「オープン」ケースを使用することができます参照し、それを続けることができるようprivate void promptSpeechInput() {
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault());
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Speech Prompt");
try {
startActivityForResult(intent, REQ_CODE_SPEECH_INPUT);
} catch (ActivityNotFoundException a) {
Toast.makeText(getApplicationContext(), "Error Occured Try again",Toast.LENGTH_SHORT).show();
}
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode,resultCode,data);
switch(requestCode) {
case REQ_CODE_SPEECH_INPUT : {
if (resultCode == RESULT_OK && null != data) {
ArrayList<String> result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
txtSpeechInput.setText(result.get(0));
String arr[] = result.get(0).split(" ",2);
String firstWord = arr[0];
String secondWord = arr[1];
switch(firstWord) {
case "call":
callPhone(secondWord);
break;
case "open":
}
}
}
}
}
。しかし、私はどのように現在電話にインストールされているすべてのアプリのリストを取得するか分からない。 親切にお手伝いしますか?
'ResolveInfo {151f1374 com.snapchat.android/.LandingPageActivity m = 0x108000}'。 List packageAppsListには、上に挙げたような様々なタプルが含まれています。どのように私はこの情報からアプリケーション名を抽出すべきですか?どうもありがとう。 –
@XavierJacob私の編集を参照してください – sup4eli
その編集に感謝します。それは私の質問を完全に解決しました。 –