From: snickersun Date: Sun, 29 Nov 2020 00:27:11 +0000 (+0800) Subject: release ICL02WorkService V57 202011290636 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=8683b50075d715f97ffcc554462238a266878418;p=icworkservice.git release ICL02WorkService V57 202011290636 体温异常处理 开始测试体温时关闭计步,避免读取重力数据造成的体温读取失败。 --- diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..245a82c --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml index d291b3d..9bba60d 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -1,15 +1,20 @@ + diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..17c8136 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 7bfef59..19aa6a5 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + diff --git a/app/IcL02WorkService/release/IcL02WorkService_V57_202010250043_release.apk b/app/IcL02WorkService/release/IcL02WorkService_V57_202010250043_release.apk deleted file mode 100644 index 394a609..0000000 Binary files a/app/IcL02WorkService/release/IcL02WorkService_V57_202010250043_release.apk and /dev/null differ diff --git a/app/IcL02WorkService/release/IcL02WorkService_V57_202011290636_release.apk b/app/IcL02WorkService/release/IcL02WorkService_V57_202011290636_release.apk new file mode 100644 index 0000000..5e5f301 Binary files /dev/null and b/app/IcL02WorkService/release/IcL02WorkService_V57_202011290636_release.apk differ diff --git a/app/IcL02WorkService/release/output.json b/app/IcL02WorkService/release/output.json new file mode 100644 index 0000000..43c12c5 --- /dev/null +++ b/app/IcL02WorkService/release/output.json @@ -0,0 +1 @@ +[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.1","enabled":true,"outputFile":"IcL02WorkService_V57_202011290636_release.apk","fullName":"IcL02WorkServiceRelease","baseName":"IcL02WorkService-release"},"path":"IcL02WorkService_V57_202011290636_release.apk","properties":{}}] \ No newline at end of file diff --git a/app/src/main/java/com/ic/work/hardware/TemperatureRunnable.java b/app/src/main/java/com/ic/work/hardware/TemperatureRunnable.java index 7429479..b959daf 100644 --- a/app/src/main/java/com/ic/work/hardware/TemperatureRunnable.java +++ b/app/src/main/java/com/ic/work/hardware/TemperatureRunnable.java @@ -1,5 +1,8 @@ package com.ic.work.hardware; +import android.app.ActivityManager; +import android.content.Context; + import com.ic.work.event.TemperatureResultCompleteEvent; import com.ic.work.event.TemperatureResultEvent; import com.ic.work.utils.HardwareUtils; @@ -8,6 +11,7 @@ import com.ic.work.utils.IcLog; import org.greenrobot.eventbus.EventBus; import java.math.BigDecimal; +import java.util.ArrayList; public class TemperatureRunnable implements Runnable { private static final String TAG = "TemperatureRunnable"; @@ -18,6 +22,9 @@ public class TemperatureRunnable implements Runnable { double testValue = 0.0; double animal = 0.0; double tempout = 0.0; + double lastTempout = 0.0; + double lastBodytemp =0.0; + double lastWristTemp = 0.0; int delay_times_in_seconds=10; boolean[] state = HardwareUtils.isTemperatureDevAvailable(); IcLog.i(TAG, "TemperatureRunnable :"+state[0]+" state[1]:"+state[1]); @@ -26,7 +33,7 @@ public class TemperatureRunnable implements Runnable { try { // if(HardwareUtils.isTemperatureDevOpened()){ IcLog.i(TAG, "getNdkTemperatureValue enableTemperature"); - + HardwareUtils.disablePedometer(); if (HardwareUtils.enableTemperature()) { IcLog.i(TAG, "getNdkTemperatureValue enableTemperature"); @@ -44,7 +51,14 @@ public class TemperatureRunnable implements Runnable { animal = HardwareUtils.getBodyTempFromWristTemp(testValue, room_temperature); } IcLog.i(TAG, "getNdkTemperatureValue Value:" + testValue + " TempOut:"+tempout+" bodyTemp:"+animal); - EventBus.getDefault().post(new TemperatureResultEvent(testValue, animal,tempout)); + if(tempout>50 || tempout<10 || testValue<10 || testValue>50 ){ + IcLog.i(TAG, "getNdkTemperatureValue TempOut or Wirst Value out of range skip send it ! "); + }else { + lastBodytemp=animal; + lastWristTemp=testValue; + lastTempout=tempout; + EventBus.getDefault().post(new TemperatureResultEvent(testValue, animal, tempout)); + } try { Thread.sleep(1000); } catch (InterruptedException e) { @@ -60,11 +74,12 @@ public class TemperatureRunnable implements Runnable { IcLog.e(TAG, "TemperatureRunnable :", e); } finally { HardwareUtils.disableTemperature(); + HardwareUtils.enablePedometer(); IcLog.i(TAG, "disableTemperature !"); } } - EventBus.getDefault().post(new TemperatureResultCompleteEvent(testValue, animal,tempout)); + EventBus.getDefault().post(new TemperatureResultCompleteEvent(lastWristTemp, lastBodytemp,lastTempout)); } public static double div(double value1, int value2, int scale) { diff --git a/app/src/main/java/com/ic/work/utils/HardwareUtils.java b/app/src/main/java/com/ic/work/utils/HardwareUtils.java index 14f8627..e103f60 100644 --- a/app/src/main/java/com/ic/work/utils/HardwareUtils.java +++ b/app/src/main/java/com/ic/work/utils/HardwareUtils.java @@ -114,6 +114,22 @@ public class HardwareUtils { return 0; } } + public static int enablePedometer(){ + try { + return ICJniUtils.enablePedometer(); + } catch (Exception e) { + IcLog.e(TAG, "",e); + return 0; + } + } + public static int disablePedometer(){ + try { + return ICJniUtils.disablePedometer(); + } catch (Exception e) { + IcLog.e(TAG, "",e); + return 0; + } + } public static boolean[] isTemperatureDevAvailable() { diff --git a/app/src/main/java/com/ic/work/weather/WeatherFromProtocol.java b/app/src/main/java/com/ic/work/weather/WeatherFromProtocol.java index dd009cf..4e4187a 100644 --- a/app/src/main/java/com/ic/work/weather/WeatherFromProtocol.java +++ b/app/src/main/java/com/ic/work/weather/WeatherFromProtocol.java @@ -1,165 +1,166 @@ -package com.ic.work.weather; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.text.TextUtils; - -import com.ic.aidl.weather.WeatherParcelable; -import com.ic.work.BuildConfig; -import com.ic.work.db.WeatherInjection; -import com.ic.work.db.entity.WeatherEntity; -import com.ic.work.event.WeatherResultEvent; -import com.ic.work.utils.IcLog; - -import org.greenrobot.eventbus.EventBus; -import org.threeten.bp.OffsetDateTime; -import org.threeten.bp.ZoneId; -import org.threeten.bp.format.DateTimeFormatter; - -import java.util.ArrayList; -import java.util.List; - -class WeatherFromProtocol { - - private final String ACTION_QUERY_WEATHER = "com.ic.action_query_weather"; - private final String ACTION_WEATHER_RECEIVED = "com.ic.action_weather_recveived"; - private final String KEY_Weather = "weather"; - - - private static final String TAG = "WeatherFromProtocol"; - - private static final DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE; - - private String mCity; - - - private Context mContext; - private WeatherInjection weatherInjection; - - public WeatherFromProtocol(WeatherInjection weatherDb,Context context) { - weatherInjection = weatherDb; - mContext=context; - registerBroadcast(); - } - - - private void registerBroadcast() { - IntentFilter filter = new IntentFilter(); - filter.addAction(ACTION_WEATHER_RECEIVED); - mContext.registerReceiver(mIntentReceiver, filter); - } - - public void sendWeatherQueryBroadcast() { - Intent pedIntent = new Intent(); - pedIntent.setAction(ACTION_QUERY_WEATHER); - mContext.sendBroadcast(pedIntent); - } - - - private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - if (intent != null) { - String acyion = intent.getAction(); - if (TextUtils.isEmpty(acyion)) { - return; - } - switch (acyion) { - case ACTION_WEATHER_RECEIVED: - String weather = intent.getStringExtra(KEY_Weather); - new Thread(){ - @Override - public void run() { - super.run(); - parseWeatherString(weather); - } - }.start(); - - break; - } - } - } - }; - - - private void parseWeatherString(String stringWeather) { - IcLog.i(TAG, "getprop weather " + stringWeather); - - List wpList = new ArrayList<>(3); - List dbList = new ArrayList<>(3); - - String list[]=stringWeather.split(";"); - if (list.length==4) { - - //南山区;2020-10-12,晴,32,24,23,31;2020-10-13,晴,32,24,23,31;2020-10-14,晴,32,24,23,31 - //宝安区;2020-10-12,多云,26,30,22,28;2020-10-13,多云,26,30,22,28;2020-10-14,多云,26,30,22,28 - String mCity=list[0]; - boolean success=true; - for (int i = 0; i < 3; i++) { - - String wlist[]=list[1+i].split(","); - IcLog.i(TAG,list[1+i]+" "+wlist.length); - if(wlist.length==6) { - WeatherParcelable weather = new WeatherParcelable(); - WeatherEntity db = new WeatherEntity(); - weather.setCity(mCity); - db.setCity(mCity); - - weather.setStatusDay(wlist[1]); // 白天天气描述 - db.setStatusDay(weather.getStatusDay()); - weather.setStatusNight(wlist[1]); // 夜间天气描述 - db.setStatusNight(weather.getStatusNight()); - - int statusid = 0; - try { - statusid = Integer.parseInt(wlist[2].trim()); - } catch (Exception e) { - e.printStackTrace(); - } - weather.setStatusID(statusid);// 天气索引 - db.setStatusID(statusid); - - weather.setFigureDay(wlist[3]); // 天气索引 - db.setFigureDay(weather.getFigureDay()); - weather.setFigureNight(wlist[3]); - db.setFigureNight(weather.getFigureNight()); - - weather.setTemperatureDay(wlist[4]); // 白天温度-对应“和风天气”的最低温度 - db.setTemperatureDay(weather.getTemperatureDay()); - weather.setTemperatureNight(wlist[5]); // 夜间温度-对应“和风天气”的最高温度 - db.setTemperatureNight(weather.getTemperatureNight()); - - weather.setUpdateTime(wlist[0]); - db.setUpdateTime(wlist[0]); - db.setQueryTime(OffsetDateTime.now(ZoneId.systemDefault())); - - if (BuildConfig.DEBUG) { - StringBuffer stringBuffer = new StringBuffer(); - stringBuffer.append(weather.getStatusDay()).append("-").append(weather.getStatusNight()) - .append("|") - .append(weather.getTemperatureDay()).append("-").append(weather.getTemperatureNight()) - .append("|") - .append(weather.getUpdateTime()); - IcLog.i(TAG, "Response is weather:" + stringBuffer.toString()); - } - - wpList.add(weather); - dbList.add(db); - }else{ - IcLog.i(TAG,"Weather Format error!"); - success=false; - break; - } - } - if(success) { - EventBus.getDefault().post(new WeatherResultEvent(wpList)); - weatherInjection.deleteDBWeatherDate(); - weatherInjection.insertWeatherEntity(dbList); - } - }else{ - IcLog.i(TAG,"Weather Format error!"); - } - } +package com.ic.work.weather; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.text.TextUtils; + +import com.ic.aidl.weather.WeatherParcelable; +import com.ic.work.BuildConfig; +import com.ic.work.db.WeatherInjection; +import com.ic.work.db.entity.WeatherEntity; +import com.ic.work.event.WeatherResultEvent; +import com.ic.work.utils.IcLog; + +import org.greenrobot.eventbus.EventBus; +import org.threeten.bp.OffsetDateTime; +import org.threeten.bp.ZoneId; +import org.threeten.bp.format.DateTimeFormatter; + +import java.util.ArrayList; +import java.util.List; + +class WeatherFromProtocol { + + private final String ACTION_QUERY_WEATHER = "com.ic.action_query_weather"; + private final String ACTION_WEATHER_RECEIVED = "com.ic.action_weather_recveived"; + private final String KEY_Weather = "weather"; + + + private static final String TAG = "WeatherFromProtocol"; + + private static final DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE; + + private String mCity; + + + private Context mContext; + private WeatherInjection weatherInjection; + + public WeatherFromProtocol(WeatherInjection weatherDb,Context context) { + weatherInjection = weatherDb; + mContext=context; + registerBroadcast(); + } + + + private void registerBroadcast() { + IntentFilter filter = new IntentFilter(); + filter.addAction(ACTION_WEATHER_RECEIVED); + mContext.registerReceiver(mIntentReceiver, filter); + } + + public void sendWeatherQueryBroadcast() { + Intent pedIntent = new Intent(); + pedIntent.setAction(ACTION_QUERY_WEATHER); + pedIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mContext.sendBroadcast(pedIntent); + } + + + private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + if (intent != null) { + String acyion = intent.getAction(); + if (TextUtils.isEmpty(acyion)) { + return; + } + switch (acyion) { + case ACTION_WEATHER_RECEIVED: + String weather = intent.getStringExtra(KEY_Weather); + new Thread(){ + @Override + public void run() { + super.run(); + parseWeatherString(weather); + } + }.start(); + + break; + } + } + } + }; + + + private void parseWeatherString(String stringWeather) { + IcLog.i(TAG, "getprop weather " + stringWeather); + + List wpList = new ArrayList<>(3); + List dbList = new ArrayList<>(3); + + String list[]=stringWeather.split(";"); + if (list.length==4) { + + //南山区;2020-10-12,晴,32,24,23,31;2020-10-13,晴,32,24,23,31;2020-10-14,晴,32,24,23,31 + //宝安区;2020-10-12,多云,26,30,22,28;2020-10-13,多云,26,30,22,28;2020-10-14,多云,26,30,22,28 + String mCity=list[0]; + boolean success=true; + for (int i = 0; i < 3; i++) { + + String wlist[]=list[1+i].split(","); + IcLog.i(TAG,list[1+i]+" "+wlist.length); + if(wlist.length==6) { + WeatherParcelable weather = new WeatherParcelable(); + WeatherEntity db = new WeatherEntity(); + weather.setCity(mCity); + db.setCity(mCity); + + weather.setStatusDay(wlist[1]); // 白天天气描述 + db.setStatusDay(weather.getStatusDay()); + weather.setStatusNight(wlist[1]); // 夜间天气描述 + db.setStatusNight(weather.getStatusNight()); + + int statusid = 0; + try { + statusid = Integer.parseInt(wlist[2].trim()); + } catch (Exception e) { + e.printStackTrace(); + } + weather.setStatusID(statusid);// 天气索引 + db.setStatusID(statusid); + + weather.setFigureDay(wlist[3]); // 天气索引 + db.setFigureDay(weather.getFigureDay()); + weather.setFigureNight(wlist[3]); + db.setFigureNight(weather.getFigureNight()); + + weather.setTemperatureDay(wlist[4]); // 白天温度-对应“和风天气”的最低温度 + db.setTemperatureDay(weather.getTemperatureDay()); + weather.setTemperatureNight(wlist[5]); // 夜间温度-对应“和风天气”的最高温度 + db.setTemperatureNight(weather.getTemperatureNight()); + + weather.setUpdateTime(wlist[0]); + db.setUpdateTime(wlist[0]); + db.setQueryTime(OffsetDateTime.now(ZoneId.systemDefault())); + + if (BuildConfig.DEBUG) { + StringBuffer stringBuffer = new StringBuffer(); + stringBuffer.append(weather.getStatusDay()).append("-").append(weather.getStatusNight()) + .append("|") + .append(weather.getTemperatureDay()).append("-").append(weather.getTemperatureNight()) + .append("|") + .append(weather.getUpdateTime()); + IcLog.i(TAG, "Response is weather:" + stringBuffer.toString()); + } + + wpList.add(weather); + dbList.add(db); + }else{ + IcLog.i(TAG,"Weather Format error!"); + success=false; + break; + } + } + if(success) { + EventBus.getDefault().post(new WeatherResultEvent(wpList)); + weatherInjection.deleteDBWeatherDate(); + weatherInjection.insertWeatherEntity(dbList); + } + }else{ + IcLog.i(TAG,"Weather Format error!"); + } + } } \ No newline at end of file