마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

소켓통신 질문 드립니다

0 추천
아두이노와 핸드폰으로 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가지를 같이 쓰게 하는 방법 좀 알려주세요
마스터c (140 포인트) 님이 2014년 10월 8일 질문
마스터c님이 2014년 10월 8일 수정
만들어야 할 기능이 많을 때는 처음에 시작하는 기능부터 만드세요.

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...