3

画面が多いダッシュボードアプリをやっています。ユーザーがそれに基づいて音声コマンドを伝えると、アクティビティを開く必要があります。どこから始めたらいいのかわからない すでにすべての画面を完了しており、音声検索を実装したいと考えています。私のアプリ画面は、アドバンス、休暇、募集、権限、通知などです。例: ユーザーが「アドバンス」と言うと、アドバンス画面を開く必要があります。私を助けてください。

4

1 に答える 1

3

1) 音声認識インテントを開始する

2) 返されたデータを onActivityResult() で処理して、開始するアクティビティを決定します

1. 音声認識インテントを開始する

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Choose Activity");
startActivityForResult(intent, REQUEST_SPEECH);

2. 返されたデータを処理する

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
        if (requestCode == REQUEST_SPEECH){
            if (resultCode == RESULT_OK){
                ArrayList<String> matches = data
                    .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);

                if (matches.size() == 0) {
                    // didn't hear anything
                } else {
                    String mostLikelyThingHeard = matches.get(0);
                    // toUpperCase() used to make string comparison equal
                    if(mostLikelyThingHeard.toUpperCase().equals("ADVANCES")){
                        startActivity(new Intent(this, Advances.class));
                    } else if() {
                    }
                }
            }
        }

        super.onActivityResult(requestCode, resultCode, data);
    }
于 2013-01-21T06:01:12.840 に答える