2012-11-07 10 views
1

Google 음성 인식 활동을 호출하는 활동을 사용합니다. 내 질문에, Google 음성 녹음 활동이 이미 팝업되면 주요 활동에서 키 이벤트를들을 수 있습니까?Android 음성 인식 팝업시 주요 활동에서 KeyEvent 수신 대기

어떤 아이디어가 있습니까? 하지만 Google 활동이 팝업되면 주요 활동이 일시 중지된다는 것을 알고 있습니다. 당신이 (예 : 키 누름을 듣고) 다음 SpeechRecognizer - 클래스를 통해 음성 인식기와 상호 작용하는 UI를 제어하려면 여기

는 않습니다 (API 레벨 8 필요), 내 안드로이드 코드

public class TestSpeechReg extends Activity { 
private TextView txtText; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    Button startButton = new Button(this); 
    startButton.setText("Start TestSpeechReg"); 
    startButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      startSpeechReg(TestSpeechReg.this); 
     } 
    }); 

    txtText = new TextView(this); 
    txtText.setText("###################"); 

    LinearLayout layout = new LinearLayout(this); 
    layout.setOrientation(LinearLayout.VERTICAL); 
    layout.addView(startButton); 
    layout.addView(txtText); 

    setContentView(layout); 
} 

// voice recognition 
public static final int REQUESTCODE_SPEECHRECOGNITION = 0x1000; 

private void startSpeechReg(Activity context) { 
    Log.i("TestSpeechReg", "openSpeechRecognition"); 
    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, 
      RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); 
    context.startActivityForResult(intent, REQUESTCODE_SPEECHRECOGNITION); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    switch (requestCode) { 
    case REQUESTCODE_SPEECHRECOGNITION: { 
     if (resultCode == RESULT_OK && null != data) { 
      ArrayList<String> text = data 
        .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); 
      txtText.setText(text.get(0)); 
     } 
     break; 
    } 
    } 
} 
} 

답변

0

입니다 새로운 활동을 시작하지 마십시오. 현재 코드가 새로운 활동을 시작합니다. 즉 UI가 중지되었습니다 (즉, 이 아니라 onStop이 호출 됨).

+0

Thx. 배경 서비스로 Speech Reg을 사용하고 싶지 않고 활동 만하고 싶습니다. UI가 일시 중지되었습니다 (새 활동은 주요 활동을 덮지 않습니다). – ForwardIterator