リアルタイム (数ミリ秒ごと) でデータを送信する別のデバイスとアプリケーションがあり、受信デバイスで次のことを行います。
1) このデータを読み取り/受信し、2) UI 要素 (この場合は動的グラフ) を更新するために使用します。
データ送信者はバックグラウンド サービスでソケットを使用し、数ミリ秒ごとに AsyncTasks を使用してデータを送信します。初期化するには、次のことを行います。
echoSocket = new Socket(HOST, PORT);
out = new PrintWriter(echoSocket.getOutputStream(), true);
定期的にデータを送信するには、次のようにします。
static class sendDataTask extends AsyncTask<Float, Void, Void> {
@Override
protected Void doInBackground(Float... params) {
try {
JSONObject j = new JSONObject();
j.put("x", params[0]);
j.put("y", params[1]);
j.put("z", params[2]);
String jString = j.toString();
out.println(jString);
} catch (Exception e) {
Log.e("sendDataTask", e.toString());
}
return null;
}
}
アプリケーションでこのデータを受信するにはどうすればよいですか? 数ミリ秒ごとにソケットから読み取ろうとする AsyncTasks でバックグラウンド サービスも使用する必要がありますか? UIスレッドとの通信はどうですか?