아두이노와 핸드폰으로 rc카 구동하려고 하는데요
일단 소스는 아래와 같습니다
package com.mnk.TCPsoketTest;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class TCPsoketTest extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try{
final String host="192.168.0.4";
final int port=27;
Socket socket=new Socket(host,port);
Toast.makeText(TCPsoketTest.this, "서버에 접속하였습니다", Toast.LENGTH_SHORT).show();
Button btn1 = (Button)findViewById(R.id.button1);
btn1.setOnTouchListener(new RepeatListener(400, 50, new OnClickListener() {
public void onClick(View v){
try {
InetAddress serverAddr = InetAddress.getByName(host);
Socket socket = new Socket(serverAddr, port);
try {
String msg="w";
PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);
out.println(msg);
} finally {
socket.close();
}
} catch (Exception e) {
}
}
}
) );
Button btn2 = (Button)findViewById(R.id.button2);
btn2.setOnTouchListener(new RepeatListener(400, 50, new OnClickListener() {
public void onClick(View v){
try {
InetAddress serverAddr = InetAddress.getByName(host);
Socket socket = new Socket(serverAddr, port);
try {
String msg="s";
PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);
out.println(msg);
} finally {
socket.close();
}
} catch (Exception e) {
}
}
}
) );
Button btn3 = (Button)findViewById(R.id.button3);
btn3.setOnTouchListener(new RepeatListener(400, 50, new OnClickListener() {
public void onClick(View v){
try {
InetAddress serverAddr = InetAddress.getByName(host);
Socket socket = new Socket(serverAddr, port);
try {
String msg="d";
PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);
out.println(msg);
} finally {
socket.close();
}
} catch (Exception e) {
}
}
}
) );
Button btn4 = (Button)findViewById(R.id.button4);
btn4.setOnTouchListener(new RepeatListener(400, 50, new OnClickListener() {
public void onClick(View v){
try {
InetAddress serverAddr = InetAddress.getByName(host);
Socket socket = new Socket(serverAddr, port);
try {
String msg="a";
PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);
out.println(msg);
} finally {
socket.close();
}
} catch (Exception e) {
}
}
}
) );
socket.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
public void processAlertDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this); // Builder 객체 생성
builder.setTitle("소리를 감지했습니다");
// null 자리에 DialogInterface.OnClickListener 객체 넣어서 버튼 눌렀을 때 작업 처리
builder.setPositiveButton("확인", null);
// 실제 적용
builder.setNegativeButton("취소", null);
builder.show(); // AlertDialog 보여주기
}
}
근데 자동차 움직이는것 까지는 되는데요
아두이노에 소리센서 달아서 소리를 아두이노가 감지할시 핸드폰 어플로 특정문자(a)를 주게 되면
processAlertDialog(팝업창)을 보여주고 다른문자가 오면 작동하지 않게 하려고 합니다
아래 소스를 이용해서 하려고 하는데요
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String str = in.readLine();
TextView tv=(TextView)findViewById(R.id.textView1);
str="s";
if(tv.getText().toString().equals(str))
{
processAlertDialog();
}
어떻게 해야 되는지 감이 오질 않네요
아직 초보라 뭐가 뭔지도 잘 모르겠어요
고수님들 어디에 어떻게 넣어야 자동차 제어부분과 실시간센서부분 이 2가지를 같이 쓰게 하는 방법 좀 알려주세요