diff --git a/android/OldPeopleHome/.idea/workspace.xml b/android/OldPeopleHome/.idea/workspace.xml index 6e02b12..2a1d747 100644 --- a/android/OldPeopleHome/.idea/workspace.xml +++ b/android/OldPeopleHome/.idea/workspace.xml @@ -125,54 +125,11 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -207,8 +164,8 @@ - - + + @@ -220,8 +177,8 @@ - - + + @@ -229,11 +186,26 @@ - - + + - - + + + + + + + + + + + + + + + + + @@ -2084,7 +2056,6 @@ @@ -2598,7 +2570,7 @@ + - + @@ -3128,13 +3101,6 @@ - - - - - - - @@ -3174,14 +3140,6 @@ - - - - - - - - @@ -3285,14 +3243,6 @@ - - - - - - - - @@ -3304,14 +3254,6 @@ - - - - - - - - @@ -3323,10 +3265,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + @@ -3336,29 +3321,23 @@ - - + + - + - - - - - - - - - - + + - - + + + + diff --git a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/loginregister/LoginActivity.java b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/loginregister/LoginActivity.java index 9906f08..7208225 100644 --- a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/loginregister/LoginActivity.java +++ b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/loginregister/LoginActivity.java @@ -17,6 +17,7 @@ import com.scorpiomiku.oldpeoplehome.R; import com.scorpiomiku.oldpeoplehome.base.BaseActivity; import com.scorpiomiku.oldpeoplehome.modules.children.activity.ChildMainActivity; import com.scorpiomiku.oldpeoplehome.modules.oldpeople.activity.OldPeopleMainActivity; +import com.scorpiomiku.oldpeoplehome.utils.TimeUtils; import butterknife.BindView; import butterknife.ButterKnife; @@ -44,6 +45,7 @@ public class LoginActivity extends BaseActivity { @Override public void iniview() { checkPermission(); + } @Override diff --git a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/EnvironmentFragment.java b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/EnvironmentFragment.java index 4454861..c2544a5 100644 --- a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/EnvironmentFragment.java +++ b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/EnvironmentFragment.java @@ -1,7 +1,9 @@ package com.scorpiomiku.oldpeoplehome.modules.oldpeople.fragmemt; +import android.annotation.SuppressLint; import android.os.Bundle; import android.os.Handler; +import android.os.Message; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -9,15 +11,23 @@ import android.widget.TextView; import com.github.mikephil.charting.charts.LineChart; import com.github.mikephil.charting.data.Entry; +import com.google.gson.JsonObject; import com.scorpiomiku.oldpeoplehome.R; import com.scorpiomiku.oldpeoplehome.base.BaseFragment; import com.scorpiomiku.oldpeoplehome.utils.ChartUtils; +import com.scorpiomiku.oldpeoplehome.utils.LogUtils; +import com.scorpiomiku.oldpeoplehome.utils.TimeUtils; +import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.Unbinder; +import okhttp3.Call; +import okhttp3.Callback; +import okhttp3.Response; /** * Created by ScorpioMiku on 2019/8/18. @@ -34,9 +44,26 @@ public class EnvironmentFragment extends BaseFragment { LineChart humidityChart; Unbinder unbinder; + private String temperature; + private String humidity; + private Boolean first = true; + + @SuppressLint("HandlerLeak") @Override protected Handler initHandle() { - return null; + return new Handler() { + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + switch (msg.what) { + case 1: + temperatureText.setText(temperature); + humidityText.setText(humidity); + upWeather(); + break; + } + } + }; } @Override @@ -52,6 +79,7 @@ public class EnvironmentFragment extends BaseFragment { @Override protected void initView() { initChart(); + getWeatherData(); } @Override @@ -89,4 +117,63 @@ public class EnvironmentFragment extends BaseFragment { } ChartUtils.initSingleLineChart(humidityChart, humidityValues, "近15天平均湿度", 0xFF01B67A); } + + /** + * 获取天气 + */ + private void getWeatherData() { + new Thread(new Runnable() { + @Override + public void run() { + if (!first) { + try { + Thread.sleep(600000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } else { + first = false; + } + getWebUtils().getWeather(new Callback() { + @Override + public void onFailure(Call call, IOException e) { + LogUtils.loge(e.getMessage()); + } + + @Override + public void onResponse(Call call, Response response) throws IOException { + JsonObject jsonObject = getWebUtils().getJsonObj(response); + jsonObject = getWebUtils().getJsonObj(jsonObject.get("result").toString()); + temperature = jsonObject.get("temperature").toString(); + humidity = String.valueOf(Float.valueOf(jsonObject.get("humidity").toString()) * 100); + handler.sendEmptyMessage(1); + } + }); + } + }).start(); + } + + /** + * 上传天气数据 + */ + private void upWeather() { + data.clear(); + data.put("roomId", "1"); + data.put("time", TimeUtils.getTime()); + data.put("temperature", temperature); + data.put("humidity", humidity); + data.put("isin", TimeUtils.getIsIn()); + getWebUtils().upRoomState(data, new Callback() { + @Override + public void onFailure(Call call, IOException e) { + LogUtils.loge(e.getMessage()); + } + + @Override + public void onResponse(Call call, Response response) throws IOException { + LogUtils.logd("上传天气数据成功"); + getWeatherData(); + } + }); + } } diff --git a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/HeartRateFragment.java b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/HeartRateFragment.java index b613e1d..825b2cd 100644 --- a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/HeartRateFragment.java +++ b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/HeartRateFragment.java @@ -115,7 +115,6 @@ public class HeartRateFragment extends BaseFragment { * @param heart */ public void changeText(String heart, String systolic, String diastolic, String oxy) { -// LogUtils.loge(this.systolic.getText().toString() + ";" + systolic + ";" + (systolic.equals(this.systolic.getText().toString()))); if (systolic.equals(this.systolic.getText().toString())) { if (!loading) { progressBar.setVisibility(View.VISIBLE); @@ -128,7 +127,7 @@ public class HeartRateFragment extends BaseFragment { this.diastolic.setText(diastolic); this.systolic.setText(systolic); this.oxy.setText(oxy); - + data.clear(); } } diff --git a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/utils/TimeUtils.java b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/utils/TimeUtils.java index ded6d92..0c6273b 100644 --- a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/utils/TimeUtils.java +++ b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/utils/TimeUtils.java @@ -3,7 +3,9 @@ package com.scorpiomiku.oldpeoplehome.utils; import android.annotation.SuppressLint; import java.text.SimpleDateFormat; +import java.util.Calendar; import java.util.Date; +import java.util.TimeZone; /** * Created by ScorpioMiku on 2019/8/18. @@ -12,7 +14,7 @@ import java.util.Date; public class TimeUtils { public static String getTime() { @SuppressLint("SimpleDateFormat") SimpleDateFormat simpleDateFormat - = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");// HH:mm:ss + = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// HH:mm:ss //获取当前时间 Date date = new Date(System.currentTimeMillis()); return simpleDateFormat.format(date) + ""; @@ -52,7 +54,19 @@ public class TimeUtils { } else { t = t + ":" + sec; } - return t; } + + /* + 是否有人 + */ + public static String getIsIn() { + Calendar calendars = Calendar.getInstance(); + calendars.setTimeZone(TimeZone.getTimeZone("GMT+8:00")); + int hour = calendars.get(Calendar.HOUR_OF_DAY); + if (hour > 22 || hour < 8) { + return "0"; + } + return "1"; + } } diff --git a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/utils/WebUtils.java b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/utils/WebUtils.java index fca9654..942bfd7 100644 --- a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/utils/WebUtils.java +++ b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/utils/WebUtils.java @@ -1,5 +1,9 @@ package com.scorpiomiku.oldpeoplehome.utils; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; + +import java.io.IOException; import java.util.HashMap; import java.util.Set; @@ -9,6 +13,7 @@ import okhttp3.MediaType; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.RequestBody; +import okhttp3.Response; import static com.scorpiomiku.oldpeoplehome.utils.StaticUtils.webHost; @@ -53,6 +58,19 @@ public class WebUtils { return requestBody; } + public JsonObject getJsonObj(Response response) throws IOException { + String result = response.body().string(); + JsonParser jsonParser = new JsonParser(); + JsonObject jsonObject = (JsonObject) jsonParser.parse(result); + return jsonObject; + } + + public JsonObject getJsonObj(String json) throws IOException { + JsonParser jsonParser = new JsonParser(); + JsonObject jsonObject = (JsonObject) jsonParser.parse(json); + return jsonObject; + } + /** * ~上传运动信息 * @@ -65,4 +83,57 @@ public class WebUtils { Call call = mClient.newCall(request); call.enqueue(callback); } + + /** + * 上传心率等信息 + * + * @param data + * @param callback + */ + public void upHeartRates(HashMap data, Callback callback) { + Request request = new Request.Builder().post(postRequestBody(data)) + .url(webHost + "/heartrate/add/").build(); + Call call = mClient.newCall(request); + call.enqueue(callback); + } + + /** + * 获取房间数据 + * + * @param roomId + * @param callback + */ + public void getRoomData(String roomId, Callback callback) { + Request request = new Request.Builder() + .url(webHost + "/rstate/get/" + roomId) + .build(); + Call call = mClient.newCall(request); + call.enqueue(callback); + } + + /** + * 获取天气信息 + * + * @param callback + */ + public void getWeather(Callback callback) { + Request request = new Request.Builder() + .url("https://api.caiyunapp.com/v2/TAkhjf8d1nlSlspN/112.4450,38.0134/realtime.jsonp") + .build(); + Call call = mClient.newCall(request); + call.enqueue(callback); + } + + /** + * 上传房间环境数据 + * + * @param hashMap + * @param callback + */ + public void upRoomState(HashMap hashMap, Callback callback) { + Request request = new Request.Builder().post(getRequestBody(hashMap)) + .url(webHost + "/rstate/add/").build(); + Call call = mClient.newCall(request); + call.enqueue(callback); + } }