아직 잘된 디자인 이라던가 그런것은 필요가없구


버튼들 디자인도 나중엔 비트맵을 가져다 쓸것같아요


지금 뭐랄까... 일단 동작하긴하는 프로토타입을 만들고있는데


제가 원하는것은 처음액티비티 에서 ip 주소를 받아와서 다음액티비티로 넘겨주고 다음액티비티에는


1 ~ 8 번 까지의 버튼이 있는데 해당 버튼을 누르면 앞서 입력한 ip로 특정포트로 정보를 전송하려합니다


유저퍼미션 추가햇구요


자바에선 소켓통신할때 항상 try catch 문을 써야한다던데


요놈이 바로 catch 문에 자꾸 헤딩합니다... 이유가 뭘까요

public class SubAC extends Activity implements View.OnTouchListener{

public static final String EXTRA_TEXT1 = "Text1";

WakeLock wakeLock = null;

    private MyView vw = null;

    SoundPool pool;

    int Effect;

    public static float w, h;

    public String host;

    int buffer = 0, set =0, sett = 0;


    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        MyView vw = new MyView( this );

        this.vw = vw;

        vw.setOnTouchListener( this );

        setContentView( vw );

        pool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);

        Effect = pool.load( this, R.raw.ef , 1 );

        Intent intent = getIntent();

        host = intent.getStringExtra(EXTRA_TEXT1);

    }

    

    public void WakeMode() {

    if (wakeLock == null) {

      PowerManager powerManager = (PowerManager)getSystemService(POWER_SERVICE);

      wakeLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "wakelock");

      wakeLock.acquire();

    }

    if(wakeLock != null) {

    wakeLock.release();

    wakeLock = null;

    }

    

    }


    public boolean onTouch(View v, MotionEvent event) {

if( event.getX()!= 0 )

pool.play( Effect , 1 , 1 , 2 , 0 , 1 );

try{

        int port = 5001;

        Socket socket = new Socket( host , port); // Create Socket

        ObjectOutputStream outstream =

        new ObjectOutputStream(socket.getOutputStream()); // Create Stream

        outstream.flush();

        socket.close(); // remove socket

if( event.getX() < w/2 ){

if(event.getY() < 0 && event.getY() > ( h / 4 )){ // Btn1 

outstream.writeObject("1");

}

else if( event.getY() > h/4 && event.getY() < ( h / 4 ) * 2 ){ // Btn2 

outstream.writeObject("2");

}

else if( event.getY() > ( h / 4) * 2 && event.getY() < (h / 4) * 3 ){ //Btn3

outstream.writeObject("3");

}

else if( event.getY() > ( h / 4 )* 3 && event.getY() < h ){ // Btn4

outstream.writeObject("4");

}

else

;

}

else{

if(event.getY() < 0 && event.getY() > ( h / 4 )){ // Btn5 

outstream.writeObject("5");

}

else if( event.getY() > h/4 && event.getY() < ( h / 4 ) * 2 ){ // Btn6 

outstream.writeObject("6");

}

else if( event.getY() > ( h / 4) * 2 && event.getY() < (h / 4) * 3 ){ //Btn7

outstream.writeObject("7");

}

else if( event.getY() > ( h / 4 )* 3 && event.getY() < h ){ // Btn8

outstream.writeObject("8");

}

else

;

}

outstream.flush();

        socket.close(); // remove socket

}catch( Exception ex){

Toast.makeText(this, "Erorr", Toast.LENGTH_SHORT).show();

}

return false;

}


protected class MyView extends View{


    public MyView( Context context ){

    super( context );

    }

        public void onDraw( Canvas canvas ){

            w = getWidth();

            h = getHeight();

  나머지는 그리기./.