안녕하세요! 초보개발자 야마돌기라고 합니다 ㅠㅠㅠ
질문드릴 것이 있어 이렇게 글을 써요
저는 갤럭시 s 를 사용하고 있는데요. 제 폰을 에뮬로하여 어플을 개발하고 있는데
음성인식이 자꾸 않되더라구요 .. 그래서 로그를 찍어 보았는데
public class VoiceCallActivity extends Activity implements OnClickListener{
private EditText numberText;
private Button dialButton;
private Button callButton;
private Button voiceBt;
String name; // 음성인식을 통한 이름이 저장되는 변수
String num; //전화번호부에서 전화번호가 저장되는 변수
boolean check= false;
private static int VOICE_REQ_CODE = 0;
boolean isVoiceRecognitionAvailable(){ //샘플코드
PackageManager pm = getPackageManager();
List<ResolveInfo> activities = pm.queryIntentActivities(
new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);
Log.d("---------- 1 ----------","-----------------------------------" + activities.size());
-------------------------이 밑부분에서 원래는 true 가 되어야 하는데 저는 액티비티사이즈가 0 으로 나옵니다.
if (activities.size() != 0)
return true;
else
return false;
}
void startVoiceRecognition(){ //샘플코드
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault().toString());
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 5);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "전화번호말해 전화해줄께");
startActivityForResult(intent, VOICE_REQ_CODE);
}
...
...
...
//@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.dialButton:
startActivity(new Intent(Intent.ACTION_DIAL)
.setData(Uri.parse("tel:"+numberText.getText().toString())));
break;
case R.id.callButton:
startActivity(new Intent(Intent.ACTION_CALL)
.setData(Uri.parse("tel:"+numberText.getText().toString())));
break;
case R.id.voicecalling:
if(isVoiceRecognitionAvailable())
startVoiceRecognition();
else
Toast.makeText(VoiceCallActivity.this, "음성인식기가 없습니다.", Toast.LENGTH_LONG).show();
break;
}
}
}
제 폰에는 음성인식 기능이 있는데 대체 왜그럴까요 ㅠㅠ 필요한 부분만 잘라서 보여드립니다
응헝 .. ㅠ