아두이노 웹서버로 순수한 아두이노 센서값을 던지고
안드로이드에서 거기로 접속에서 데이터를 가져오는 방식입니다
데이터 값을 string으로 가져오는데 이걸 인티져로 바꾸면 오류가 나면서 앱이 종료가되더라구요
대이터값은 정확하게 받고있습니다. 데이터를 받아서 1이면 아무작동도안하고 0이면 imageView의 색깔을
바꾸거나 새로 imageView를 만들어서 덮어쓰고싶은데요 작동이 제대로 안되네요 코드 한번 봐주시길 부탁드립니다
public class MainActivity extends AppCompatActivity {
private final static int PORT = 6666;
private TextView text1;
private Button button1;
private Button button2;
private Socket client;
private PrintWriter printWriter;
private BufferedReader bufferedReader;
private URL url;
private String result, strUrl;
private String strCookie;
private int a = 0;
private Handler mHandler = new Handler();
String temp = "";
/**
* ATTENTION: This was auto-generated to implement the App Indexing API.
* See https://g.co/AppIndexing/AndroidStudio for more information.
*/
//private GoogleApiClient client2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RelativeLayout MyLayout = (RelativeLayout)findViewById(R.id.mylayout);
final ImageView MyImg = (ImageView)findViewById(R.id.rec1);
button1 = (Button) findViewById(R.id.button);
button2 = (Button) findViewById(R.id.button2);
text1 = (TextView) findViewById(R.id.textView);
//text1.setText(result);
// 버튼 1 이벤트
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new AsyncTask<Void, Void, Void>() {
@Override
protected void onPreExecute() {
super.onPreExecute();
strUrl = "http://192.168.43.213/arduino/laser";
}
@Override
protected Void doInBackground(Void... params) {
try {
url = new URL(strUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET"); // get방식 통신
conn.setDoOutput(true); // 쓰기모드 지정
conn.setDoInput(true); // 읽기모드 지정
conn.setUseCaches(false); // 캐싱데이터를 받을지 안받을지
conn.setDefaultUseCaches(false); // 캐싱데이터 디폴트 값 설정
strCookie = conn.getHeaderField("Set-Cookie"); //쿠키데이터 보관
InputStream is = conn.getInputStream();
StringBuilder builder = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
//Log.d(TAG, String.valueOf(builder));
//Log.d(TAG, String.valueOf(reader));
//Log.d(TAG, String.valueOf(is));
String line;
while ((line = reader.readLine()) != null) {
builder.append(line + "\n");
}
result = builder.toString();
//a = Integer.valueOf(result);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
if(result == "0")
{
new Thread(new Runnable() {
@Override
public void run() {
mHandler.post(new Runnable() {
public void run() {
//MyImg.setBackgroundColor(Color.rgb(255,0,0));
MyImg.setBackgroundResource(R.drawable.rec2);
}
});
}
}
);
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
System.out.println(result);
text1.setText(result);
}
}.execute();
}
});
/*
// 버튼 2 이벤트
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});*/
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
}
}