Open 710csm opened 5 years ago
package com.example.chois.myapp;
import android.content.Intent; import android.graphics.Color; import android.os.StrictMode; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText;
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket;
public class MainActivity extends AppCompatActivity {
Button btn;
Button sh;
EditText tv;
private String data = "-1";
private String tx="";
private Socket clientSocket;
private BufferedReader socketIn;
private PrintWriter socketOut;
private int port = 11111;
private final String ip = "210.115.226.109";
private MyThread thread;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// StrictMode는 개발자가 실수하는 것을 감지하고 해결할 수 있도록 돕는 일종의 개발 툴
// - 메인 스레드에서 디스크 접근, 네트워크 접근 등 비효율적 작업을 하려는 것을 감지하여
// 프로그램이 부드럽게 작동하도록 돕고 빠른 응답을 갖도록 함, 즉 Android Not Responding 방지에 도움
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
try {
clientSocket = new Socket(ip, port);
socketIn = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
socketOut = new PrintWriter(clientSocket.getOutputStream(), true);
} catch (Exception e) {
e.printStackTrace();
}
btn = (Button) findViewById(R.id.btn);
sh = (Button) findViewById(R.id.share);
tv = (EditText) findViewById(R.id.tv);
tv.setFocusable(false);
tv.setClickable(false);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
socketOut.println("and:");
Log.d("csm","and:보냄");
thread = new MyThread();
thread.start();
if(data.equals("-1")){
tv.setText("접속이 원할하지 않습니다.");
}else if(data.equals("0")){
tv.setText("쾌적");
tv.setTextColor(Color.parseColor("#0CFF10"));
}else if(data.equals("1")){
tv.setText("보통");
tv.setTextColor(Color.parseColor("#100BFF"));
}else if(data.equals("2")){
tv.setText("혼잡");
tv.setTextColor(Color.parseColor("#FF0400"));
}
}
});
sh.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("csm","눌림");
Intent msg = new Intent(Intent.ACTION_SEND);
tx += tv.getText();
msg.addCategory(Intent.CATEGORY_DEFAULT);
msg.putExtra(Intent.EXTRA_SUBJECT, "지하철 상태");
msg.putExtra(Intent.EXTRA_TEXT, tx);
msg.putExtra(Intent.EXTRA_TITLE, "지하철");
msg.setType("text/plain");
startActivity(Intent.createChooser(msg, "공유"));
}
});
}
class MyThread extends Thread {
@Override
public void run() {
try{
if((socketIn.readLine())==null){
data = "-1";
Log.d("csm",data);
}else{
data = socketIn.readLine();
Log.d("csm",data);
}
}catch (Exception e){
e.printStackTrace();
}
}
}
}
package com.example.chois.myapp;
import android.content.Intent; import android.os.StrictMode; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText;
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket;
public class MainActivity extends AppCompatActivity {
}