void sendData(String msg) {
msg += mStrDelimiter;
try {
mOutputStream.write(msg.getBytes());
} catch (Exception e) {
Toast.makeText(getApplicationContext(), "데이터 전송 중 오류가 발생했습니다.",
Toast.LENGTH_LONG).show();
finish();
}
}
super.onActivityResult(requestCode, resultCode, data);
}
private void showSelectDialog(int requestCode, Intent data){
String key = "";
Log.d("test1", key); //구글음성인식이면
key = RecognizerIntent.EXTRA_RESULTS; //키값 설정
mResult = data.getStringArrayListExtra(key); //인식된 데이터 list 받아옴.
String[] result = new String[mResult.size()]; //배열생성. 다이얼로그에서 출력하기 위해
mResult.toArray(result); // list 배열로 변환
//1개 선택하는 다이얼로그 생성
AlertDialog ad = new AlertDialog.Builder(this).setTitle("선택하세요.")
.setSingleChoiceItems(result, -1, new DialogInterface.OnClickListener() {
@Override public void onClick(DialogInterface dialog, int which) {
mSelectedString = mResult.get(which); //선택하면 해당 글자 저장
}
})
.setPositiveButton("확인", new DialogInterface.OnClickListener() {
@Override public void onClick(DialogInterface dialog, int which) {
mEditReceive.setText(mEditReceive
.getText().toString()
+ "인식결과 : " + mSelectedString + mStrDelimiter);
//mEditReceive.setText("인식결과 : "+ mSelectedString); //확인 버튼 누르면 결과 출력
if(mSelectedString.equalsIgnoreCase("on"))
sendData("1");
else if(mSelectedString.equalsIgnoreCase("off"))
sendData("2");
else if(mSelectedString.equalsIgnoreCase("auto"))
sendData("3");
else if(mSelectedString.equalsIgnoreCase("stop"))
sendData("4");
else if(mSelectedString.equalsIgnoreCase("sleep"))
sendData("5");
else if(mSelectedString.equalsIgnoreCase("switch"))
sendData("6");
}
})
.setNegativeButton("취소", new DialogInterface.OnClickListener() {
@Override public void onClick(DialogInterface dialog, int which) {
// mEditReceive.setText(""); //취소버튼 누르면 초기화
mSelectedString = null;
}
}).create();
ad.show();
}
public void clickLayout(View v) {
int id = v.getId();
LinearLayout layout = (LinearLayout)findViewById(id);
Intent it = null;
switch(id) {
case R.id. onnn:
sendData("7");
case R.id.info :
it = new Intent(MainActivity.this, information.class);
this.startActivity(it);
break;
case R.id.quit :
finish();
case R.id. offf:
sendData("2");
}
}
}
다른건 다 정상동장하는데 해당부분만 에러가 발생하네요.(빨간색)
수신측 아두이노에서 확인시 11이라고 중복된 값이 뜨고 정상 동작을 하지 않습니다. 바로 위에 on 동작시 senddata1은 정상동작 하는데요.
그렇다고 아두이노 변수를 11로 바꿔봐도 인식이 안된다고 에러가 뜨고. 왜이렇게 중복으로 보내지는 에러가 날까요??
송신측에서 뭔가 수신측과 전송속도를 안맞춰서 그런건지..;; 다른건 되는데 이거 하나만 안되는게 애매하네요.
다른 변수도 동시에 들어간다고 찍히더라도 잘 되는데 말이죠.(ex offf는 정상동작)