release ICL02WorkService V57 202011290636
authorsnickersun <scy@incartech.cn>
Sun, 29 Nov 2020 00:27:11 +0000 (08:27 +0800)
committersnickersun <scy@incartech.cn>
Sun, 29 Nov 2020 00:27:11 +0000 (08:27 +0800)
体温异常处理
开始测试体温时关闭计步,避免读取重力数据造成的体温读取失败。

.idea/compiler.xml [new file with mode: 0644]
.idea/gradle.xml
.idea/jarRepositories.xml [new file with mode: 0644]
.idea/misc.xml
app/IcL02WorkService/release/IcL02WorkService_V57_202010250043_release.apk [deleted file]
app/IcL02WorkService/release/IcL02WorkService_V57_202011290636_release.apk [new file with mode: 0644]
app/IcL02WorkService/release/output.json [new file with mode: 0644]
app/src/main/java/com/ic/work/hardware/TemperatureRunnable.java
app/src/main/java/com/ic/work/utils/HardwareUtils.java
app/src/main/java/com/ic/work/weather/WeatherFromProtocol.java

diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644 (file)
index 0000000..245a82c
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<project version="4">\r
+  <component name="CompilerConfiguration">\r
+    <bytecodeTargetLevel target="1.8" />\r
+  </component>\r
+</project>
\ No newline at end of file
index d291b3d..9bba60d 100644 (file)
@@ -1,15 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
+  <component name="GradleMigrationSettings" migrationVersion="1" />
   <component name="GradleSettings">
     <option name="linkedExternalProjectsSettings">
       <GradleProjectSettings>
-        <compositeConfiguration>
-          <compositeBuild compositeDefinitionSource="SCRIPT" />
-        </compositeConfiguration>
+        <option name="testRunner" value="PLATFORM" />
         <option name="distributionType" value="DEFAULT_WRAPPED" />
         <option name="externalProjectPath" value="$PROJECT_DIR$" />
+        <option name="modules">
+          <set>
+            <option value="$PROJECT_DIR$" />
+            <option value="$PROJECT_DIR$/app" />
+          </set>
+        </option>
         <option name="resolveModulePerSourceSet" value="false" />
-        <option name="testRunner" value="PLATFORM" />
+        <option name="useQualifiedModuleNames" value="true" />
       </GradleProjectSettings>
     </option>
   </component>
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644 (file)
index 0000000..17c8136
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<project version="4">\r
+  <component name="RemoteRepositoriesConfiguration">\r
+    <remote-repository>\r
+      <option name="id" value="central" />\r
+      <option name="name" value="Maven Central repository" />\r
+      <option name="url" value="https://repo1.maven.org/maven2" />\r
+    </remote-repository>\r
+    <remote-repository>\r
+      <option name="id" value="jboss.community" />\r
+      <option name="name" value="JBoss Community repository" />\r
+      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />\r
+    </remote-repository>\r
+    <remote-repository>\r
+      <option name="id" value="BintrayJCenter" />\r
+      <option name="name" value="BintrayJCenter" />\r
+      <option name="url" value="https://jcenter.bintray.com/" />\r
+    </remote-repository>\r
+    <remote-repository>\r
+      <option name="id" value="Google" />\r
+      <option name="name" value="Google" />\r
+      <option name="url" value="https://dl.google.com/dl/android/maven2/" />\r
+    </remote-repository>\r
+  </component>\r
+</project>
\ No newline at end of file
index 7bfef59..19aa6a5 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="JDK" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/build/classes" />
   </component>
   <component name="ProjectType">
diff --git a/app/IcL02WorkService/release/IcL02WorkService_V57_202010250043_release.apk b/app/IcL02WorkService/release/IcL02WorkService_V57_202010250043_release.apk
deleted file mode 100644 (file)
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 (file)
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 (file)
index 0000000..43c12c5
--- /dev/null
@@ -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
index 7429479..b959daf 100644 (file)
@@ -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) {
index 14f8627..e103f60 100644 (file)
@@ -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() {
 
index dd009cf..4e4187a 100644 (file)
-package com.ic.work.weather;\r
-\r
-import android.content.BroadcastReceiver;\r
-import android.content.Context;\r
-import android.content.Intent;\r
-import android.content.IntentFilter;\r
-import android.text.TextUtils;\r
-\r
-import com.ic.aidl.weather.WeatherParcelable;\r
-import com.ic.work.BuildConfig;\r
-import com.ic.work.db.WeatherInjection;\r
-import com.ic.work.db.entity.WeatherEntity;\r
-import com.ic.work.event.WeatherResultEvent;\r
-import com.ic.work.utils.IcLog;\r
-\r
-import org.greenrobot.eventbus.EventBus;\r
-import org.threeten.bp.OffsetDateTime;\r
-import org.threeten.bp.ZoneId;\r
-import org.threeten.bp.format.DateTimeFormatter;\r
-\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-\r
-class WeatherFromProtocol {\r
-\r
-    private final String ACTION_QUERY_WEATHER = "com.ic.action_query_weather";\r
-    private final String ACTION_WEATHER_RECEIVED = "com.ic.action_weather_recveived";\r
-    private final String KEY_Weather = "weather";\r
-\r
-\r
-    private static final String TAG = "WeatherFromProtocol";\r
-\r
-    private static final DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE;\r
-\r
-    private String mCity;\r
-\r
-\r
-    private Context mContext;\r
-    private WeatherInjection weatherInjection;\r
-\r
-    public WeatherFromProtocol(WeatherInjection weatherDb,Context context) {\r
-        weatherInjection = weatherDb;\r
-        mContext=context;\r
-        registerBroadcast();\r
-    }\r
-\r
-\r
-    private void registerBroadcast() {\r
-        IntentFilter filter = new IntentFilter();\r
-        filter.addAction(ACTION_WEATHER_RECEIVED);\r
-        mContext.registerReceiver(mIntentReceiver, filter);\r
-    }\r
-\r
-    public void sendWeatherQueryBroadcast() {\r
-        Intent pedIntent = new Intent();\r
-        pedIntent.setAction(ACTION_QUERY_WEATHER);\r
-        mContext.sendBroadcast(pedIntent);\r
-    }\r
-\r
-\r
-    private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {\r
-        @Override\r
-        public void onReceive(Context context, Intent intent) {\r
-            if (intent != null) {\r
-                String acyion = intent.getAction();\r
-                if (TextUtils.isEmpty(acyion)) {\r
-                    return;\r
-                }\r
-                switch (acyion) {\r
-                    case ACTION_WEATHER_RECEIVED:\r
-                        String weather = intent.getStringExtra(KEY_Weather);\r
-                        new Thread(){\r
-                            @Override\r
-                            public void run() {\r
-                                super.run();\r
-                                parseWeatherString(weather);\r
-                            }\r
-                        }.start();\r
-\r
-                        break;\r
-                }\r
-            }\r
-        }\r
-    };\r
-\r
-\r
-    private void parseWeatherString(String stringWeather) {\r
-        IcLog.i(TAG, "getprop  weather " + stringWeather);\r
-\r
-        List<WeatherParcelable> wpList = new ArrayList<>(3);\r
-        List<WeatherEntity> dbList = new ArrayList<>(3);\r
-\r
-        String list[]=stringWeather.split(";");\r
-        if (list.length==4) {\r
-\r
-            //南山区;2020-10-12,晴,32,24,23,31;2020-10-13,晴,32,24,23,31;2020-10-14,晴,32,24,23,31\r
-            //宝安区;2020-10-12,多云,26,30,22,28;2020-10-13,多云,26,30,22,28;2020-10-14,多云,26,30,22,28\r
-            String mCity=list[0];\r
-            boolean success=true;\r
-            for (int i = 0; i < 3; i++) {\r
-\r
-                String wlist[]=list[1+i].split(",");\r
-                IcLog.i(TAG,list[1+i]+" "+wlist.length);\r
-                if(wlist.length==6) {\r
-                    WeatherParcelable weather = new WeatherParcelable();\r
-                    WeatherEntity db = new WeatherEntity();\r
-                    weather.setCity(mCity);\r
-                    db.setCity(mCity);\r
-\r
-                    weather.setStatusDay(wlist[1]);      // 白天天气描述\r
-                    db.setStatusDay(weather.getStatusDay());\r
-                    weather.setStatusNight(wlist[1]);    // 夜间天气描述\r
-                    db.setStatusNight(weather.getStatusNight());\r
-\r
-                    int statusid = 0;\r
-                    try {\r
-                        statusid = Integer.parseInt(wlist[2].trim());\r
-                    } catch (Exception e) {\r
-                        e.printStackTrace();\r
-                    }\r
-                    weather.setStatusID(statusid);// 天气索引\r
-                    db.setStatusID(statusid);\r
-\r
-                    weather.setFigureDay(wlist[3]);      // 天气索引\r
-                    db.setFigureDay(weather.getFigureDay());\r
-                    weather.setFigureNight(wlist[3]);\r
-                    db.setFigureNight(weather.getFigureNight());\r
-\r
-                    weather.setTemperatureDay(wlist[4]);      // 白天温度-对应“和风天气”的最低温度\r
-                    db.setTemperatureDay(weather.getTemperatureDay());\r
-                    weather.setTemperatureNight(wlist[5]);    // 夜间温度-对应“和风天气”的最高温度\r
-                    db.setTemperatureNight(weather.getTemperatureNight());\r
-\r
-                    weather.setUpdateTime(wlist[0]);\r
-                    db.setUpdateTime(wlist[0]);\r
-                    db.setQueryTime(OffsetDateTime.now(ZoneId.systemDefault()));\r
-\r
-                    if (BuildConfig.DEBUG) {\r
-                        StringBuffer stringBuffer = new StringBuffer();\r
-                        stringBuffer.append(weather.getStatusDay()).append("-").append(weather.getStatusNight())\r
-                                .append("|")\r
-                                .append(weather.getTemperatureDay()).append("-").append(weather.getTemperatureNight())\r
-                                .append("|")\r
-                                .append(weather.getUpdateTime());\r
-                        IcLog.i(TAG, "Response is weather:" + stringBuffer.toString());\r
-                    }\r
-\r
-                    wpList.add(weather);\r
-                    dbList.add(db);\r
-                }else{\r
-                    IcLog.i(TAG,"Weather Format error!");\r
-                    success=false;\r
-                    break;\r
-                }\r
-            }\r
-            if(success) {\r
-                EventBus.getDefault().post(new WeatherResultEvent(wpList));\r
-                weatherInjection.deleteDBWeatherDate();\r
-                weatherInjection.insertWeatherEntity(dbList);\r
-            }\r
-        }else{\r
-            IcLog.i(TAG,"Weather Format error!");\r
-        }\r
-    }\r
+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<WeatherParcelable> wpList = new ArrayList<>(3);
+        List<WeatherEntity> 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