2013-01-21 1 views
3

대다수의 화면이있는 대시 보드 애플리케이션을 만들고 있습니다. 사용자가 음성 명령에 따라 활동을 열어야한다고 말하면 어디서부터 시작해야할지 모르겠다. 이미 모든 화면을 완성했으며 음성 검색을 구현하고 싶다. 내 앱 화면은 진도, 나뭇잎, 모집, 권한, 알림 등입니다. 예 : 사용자가 '고급'이라고 말하면 고급 화면이 열립니다. 도와주세요.음성 명령을 기반으로 활동을 여는 방법

+0

이 http://developer.android.com/guide/topics/search/search-dialog.html이 도움이 될 것이라고 생각합니다 – Sree

+0

음성 명령에 따라 활동을 시작하고 싶습니다 ... 이미 검색을 구현했습니다. . 귀하의 회신에 대한 감사합니다 – Pragnani

+2

내가 Google에 질문을하면이 http://stackoverflow.com/a/10330292/1697047이 표시됩니다. 이 – Sree

답변

3

1)

1.에게 의도 음성 인식을 시작하는 활동을 결정하는) (onActivityResult를에서 반환 된 데이터를 처리) 음성 인식 의도

2를 시작

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); 
    } 
+0

정보 공유를위한 감사합니다. @jfortunato. 나는 "ADVANCES"대신에 나의 Contact List에 의도를 전달하고 싶었다. 나는 시도했지만 연락처를 다시 Intent를 전달할 때 startActivity() 대신 startActivityForResult() 메서드를 사용해야한다. 너 나 좀 도와 줄래? – Tara