refactor codes.
authorTrillGates <williamtrillgates@gmail.com>
Sat, 4 Dec 2021 11:44:58 +0000 (19:44 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Sat, 4 Dec 2021 11:44:58 +0000 (19:44 +0800)
app/IcL02WorkService/release/IcL02WorkService_V59_202110261726_release.apk [deleted file]
app/IcL02WorkService/release/IcL02WorkService_V59_202110291644_release.apk [new file with mode: 0644]
app/IcL02WorkService/release/output.json
app/src/main/AndroidManifest.xml
app/src/main/java/com/ic/work/MainActivity.java
app/src/main/java/com/ic/work/SensorDataService.java
app/src/main/java/com/ic/work/WorkService.java
app/src/main/java/com/ic/work/hardware/BloodInfoHelper.java
app/src/main/java/com/ic/work/utils/ICWorkConstants.java
app/src/main/java/com/ic/work/utils/TemperatureUtil.java

diff --git a/app/IcL02WorkService/release/IcL02WorkService_V59_202110261726_release.apk b/app/IcL02WorkService/release/IcL02WorkService_V59_202110261726_release.apk
deleted file mode 100644 (file)
index 01c1036..0000000
Binary files a/app/IcL02WorkService/release/IcL02WorkService_V59_202110261726_release.apk and /dev/null differ
diff --git a/app/IcL02WorkService/release/IcL02WorkService_V59_202110291644_release.apk b/app/IcL02WorkService/release/IcL02WorkService_V59_202110291644_release.apk
new file mode 100644 (file)
index 0000000..4aee548
Binary files /dev/null and b/app/IcL02WorkService/release/IcL02WorkService_V59_202110291644_release.apk differ
index 1fa23b2..2006d9d 100644 (file)
@@ -1 +1 @@
-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.1","enabled":true,"outputFile":"IcL02WorkService_V59_202110261726_release.apk","fullName":"IcL02WorkServiceRelease","baseName":"IcL02WorkService-release"},"path":"IcL02WorkService_V59_202110261726_release.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.1","enabled":true,"outputFile":"IcL02WorkService_V59_202110291644_release.apk","fullName":"IcL02WorkServiceRelease","baseName":"IcL02WorkService-release"},"path":"IcL02WorkService_V59_202110291644_release.apk","properties":{}}]
\ No newline at end of file
index d7d11de..27621a0 100644 (file)
@@ -47,8 +47,7 @@
         <service
             android:name=".WorkService"
             android:enabled="true"
-            android:exported="true"
-            android:process=":remote">
+            android:exported="true">
             <intent-filter>
                 <action android:name="com.ic.action.WORK_SERVICE" />
             </intent-filter>
index aaf58f7..488df10 100644 (file)
@@ -1,17 +1,13 @@
 package com.ic.work;
 
-import androidx.appcompat.app.AppCompatActivity;
-
 import android.content.Context;
 import android.os.Bundle;
-import android.os.Handler;
 import android.widget.Button;
 
-import com.ic.work.hardware.BeforeDawnRunnable;
+import androidx.appcompat.app.AppCompatActivity;
+
 import com.ic.work.utils.IcLog;
 import com.ic.work.utils.ServiceUtil;
-import com.ic.work.weather.LocationState;
-import com.ic.work.weather.WeatherHelper;
 
 import org.threeten.bp.Duration;
 import org.threeten.bp.OffsetDateTime;
@@ -48,5 +44,4 @@ public class MainActivity extends AppCompatActivity {
         IcLog.i(TAG,"interval: "+interval.toDays());
     }
 
-
 }
index 7da4ea6..6e88c1d 100644 (file)
@@ -153,9 +153,9 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp
             case HEART_RATE_AND_OXYGEN:
                 //获取心率内容
                 if (testTaskEvent.from.equals(TestTaskEvent.From.CLIENT_CMD) && isTest) {
-                    BloodInfoHelper.MaxtestCount = 300;
+                    BloodInfoHelper.MaxTestCount = 300;
                 } else {
-                    BloodInfoHelper.MaxtestCount = 10;
+                    BloodInfoHelper.MaxTestCount = 10;
                 }
                 isOxygenOrHeartRateStop = false;
                 getHeartInfo();
@@ -165,18 +165,18 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp
                 break;
             case JUST_OXYGEN:
                 if (testTaskEvent.from.equals(TestTaskEvent.From.CLIENT_CMD) && isTest) {
-                    BloodInfoHelper.MaxtestCount = 300;
+                    BloodInfoHelper.MaxTestCount = 300;
                 } else {
-                    BloodInfoHelper.MaxtestCount = 10;
+                    BloodInfoHelper.MaxTestCount = 10;
                 }
                 isOxygenOrHeartRateStop = false;
                 justGetOxygen();
                 break;
             case JUST_HEART_RATE:
                 if (testTaskEvent.from.equals(TestTaskEvent.From.CLIENT_CMD) && isTest) {
-                    BloodInfoHelper.MaxtestCount = 300;
+                    BloodInfoHelper.MaxTestCount = 300;
                 } else {
-                    BloodInfoHelper.MaxtestCount = 10;
+                    BloodInfoHelper.MaxTestCount = 10;
                 }
                 isOxygenOrHeartRateStop = false;
                 justGetHeartRate();
@@ -223,7 +223,7 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp
     }
 
     public static final String PATH = "settings";
-    public static final String AUTHORITY = "com.ic.fzd.settings";
+    public static final String AUTHORITY = "com.ic.protocolSrv";
     public static final String SETTINGS = "content://" + AUTHORITY + "/" + PATH;
 
     private void temperatureSave2Db(double wristTemp, double bodyTemp, double envTemp) {
index bfa66d7..5bbd22a 100644 (file)
@@ -23,14 +23,12 @@ import com.ic.work.event.WeatherResultEvent;
 import com.ic.work.hardware.A9BloodRunnable;
 import com.ic.work.hardware.AkBloodRunnable;
 import com.ic.work.hardware.BeforeDawnRunnable;
-import com.ic.work.hardware.BloodSensorManager;
 import com.ic.work.hardware.MessengerCoreService;
 import com.ic.work.hardware.PedRecordRunnable;
 import com.ic.work.hardware.PedRunnable;
 import com.ic.work.process.AkProcess;
 import com.ic.work.process.BloodProcess;
 import com.ic.work.process.PedProcess;
-import com.ic.work.process.TempProcess;
 import com.ic.work.process.WeatherProcess;
 import com.ic.work.utils.ICLogger;
 import com.ic.work.utils.IcLog;
@@ -52,7 +50,6 @@ import static com.ic.work.utils.ICWorkConstants.EventType.TEST_STEP;
 import static com.ic.work.utils.ICWorkConstants.EventType.WEATHER;
 import static com.ic.work.utils.ICWorkConstants.ServiceType.ACTION_HARD_WARE;
 import static com.ic.work.utils.ICWorkConstants.ServiceType.ACTION_IC_AK;
-import static com.ic.work.utils.ICWorkConstants.ServiceType.ACTION_WEATHER;
 
 public class WorkService extends Service {
 
@@ -71,7 +68,6 @@ public class WorkService extends Service {
     private static final String MSG_KEY = "txtMsg";
     private BloodProcess bloodProcess;
     private PedProcess pedProcess;
-    private TempProcess tempProcess;
 
     private WeatherProcess weatherProcess;
     private AkProcess akProcess;
@@ -84,17 +80,17 @@ public class WorkService extends Service {
 
     private LocalDateTime mFinishTime;
 
-    private BloodSensorManager bloodSensorManager;
-
 
     @Override
     public IBinder onBind(Intent intent) {
         if (intent != null) {
-            IcLog.i(TAG, intent.getPackage());
-            switch (intent.getPackage()) {
-                case ACTION_WEATHER:
-                    //天气
-                    return weatherProcess.getWeatherBinder();
+            IcLog.i(TAG, intent.getAction());
+            String target = intent.getStringExtra("target");
+            ICLogger.d("target ==> " + target);
+            if (target == null) {
+                return null;
+            }
+            switch (target) {
                 case ACTION_HARD_WARE:
                     //计步
                     return pedProcess.getPedBinder();
@@ -116,7 +112,6 @@ public class WorkService extends Service {
         weatherProcess = new WeatherProcess();
         bloodProcess = new BloodProcess();
         pedProcess = new PedProcess();
-        tempProcess = new TempProcess();
         akProcess = new AkProcess();
         mWeatherHelper = new WeatherHelper(mApp.getWeatherRepository(), this);
         EventBus.getDefault().register(this);
index e4c1cee..891c763 100644 (file)
@@ -103,13 +103,14 @@ public class BloodInfoHelper implements SensorEventListener {
         //加一个超时处理,如果超过30秒没有数据返回
         //那么就会干掉当前的任务,并且取消监听,重置数据
         //如果有数据回来,那么就重新设置下一次超时
-        ppgLooper.postDelayed(mTask, TIME_OUT_VALUE);
+        ppgLooper.postDelayed(mTimeoutTask, TIME_OUT_VALUE);
     }
-    public static int MaxtestCount = 10;
+
+    public static int MaxTestCount = 10;
     //10秒还没有数据回来,那么就结束测试
     public static final int TIME_OUT_VALUE = 10 * 1000;
 
-    private final Runnable mTask = new Runnable() {
+    private final Runnable mTimeoutTask = new Runnable() {
         @Override
         public void run() {
             //超时了
@@ -163,29 +164,34 @@ public class BloodInfoHelper implements SensorEventListener {
         //测试数据是一个循环,有三种情况
         //- 没有穿戴,如果超过20秒没有穿戴,那么就结束此次测试
         //- 20秒内有穿戴,则开始测试
-        ppgLooper.post(new Runnable() {
-            @Override
-            public void run() {
-                ndkHeart = HardwareUtils.getNdkPPGValue();
-                isWear = HardwareUtils.isWeared();
-                IcLog.d(TAG, "isWear == > " + isWear);
-                if (!isWear) {
-                    //延时1秒进行检查
-                    noWearCount++;
-                    IcLog.d(TAG, "noWearCount == > " + noWearCount);
-                    if (noWearCount <= 20) {
-                        ppgLooper.postDelayed(this, 1000);
-                    } else {
-                        handleNoWearResult();
-                    }
+        //先删除,再去跑
+        ppgLooper.removeCallbacks(checkWearTask);
+        ppgLooper.post(checkWearTask);
+    }
+
+    private final Runnable checkWearTask = new Runnable() {
+        @Override
+        public void run() {
+            ndkHeart = HardwareUtils.getNdkPPGValue();
+            isWear = HardwareUtils.isWeared();
+            IcLog.d(TAG, "isWear == > " + isWear);
+            if (!isWear) {
+                //延时1秒进行检查
+                noWearCount++;
+                IcLog.d(TAG, "noWearCount == > " + noWearCount);
+                if (noWearCount <= 20) {
+                    ppgLooper.removeCallbacks(this);
+                    ppgLooper.postDelayed(this, 1000);
                 } else {
-                    noWearCount = 0;
-                    //开始去检测了
-                    doTest();
+                    handleNoWearResult();
                 }
+            } else {
+                noWearCount = 0;
+                //开始去检测了
+                doTest();
             }
-        });
-    }
+        }
+    };
 
     private void handleNoWearResult() {
         if (mListener != null) {
@@ -221,30 +227,34 @@ public class BloodInfoHelper implements SensorEventListener {
     //- 数据测试结果为0,如果连续20个数据为0,那么就结束此次测试
     //- 有数据以后,连续测上10次,就可以返回结果了
     private void doTest() {
-        ppgLooper.post(new Runnable() {
-            @Override
-            public void run() {
-                //这部分代码要做超时处理{
-                long getPPGStartTime = System.currentTimeMillis();
-                ndkHeart = HardwareUtils.getNdkPPGValue();
-                ndkHigh = HardwareUtils.getNdkHighBloodValue();
-                ndkLow = HardwareUtils.getNdkLowBloodValue();
-                oxygen = HardwareUtils.getNdkOxygenValue();
-                dispatchPPG();
-                if (checkCount > MaxtestCount || invalidateTime > 30) {
+        ppgLooper.removeCallbacks(testTask);
+        ppgLooper.post(testTask);
+    }
+
+    private final Runnable testTask = new Runnable() {
+        @Override
+        public void run() {
+            //这部分代码要做超时处理{
+            long getPPGStartTime = System.currentTimeMillis();
+            ndkHeart = HardwareUtils.getNdkPPGValue();
+            ndkHigh = HardwareUtils.getNdkHighBloodValue();
+            ndkLow = HardwareUtils.getNdkLowBloodValue();
+            oxygen = HardwareUtils.getNdkOxygenValue();
+            dispatchPPG();
+            if (checkCount > MaxTestCount || invalidateTime > 30) {
+                handleResultOtherBlood();
+            } else {
+                if (!continueTest) {
                     handleResultOtherBlood();
                 } else {
-                    if (!continueTest) {
-                        handleResultOtherBlood();
-                    } else {
-                        //继续测试
-                        ppgLooper.postDelayed(this, 1000);
-                    }
+                    //继续测试
+                    ppgLooper.removeCallbacks(this);
+                    ppgLooper.postDelayed(this, 1000);
                 }
-                IcLog.d(TAG, "use time == > " + (System.currentTimeMillis() - getPPGStartTime));
             }
-        });
-    }
+            IcLog.d(TAG, "use time == > " + (System.currentTimeMillis() - getPPGStartTime));
+        }
+    };
 
     private void handleResultOtherBlood() {
         if (mListener != null) {
@@ -313,17 +323,17 @@ public class BloodInfoHelper implements SensorEventListener {
             // isPPGTesting = true;// (ICJniUtils.isPPGStarted() == 1);
             dispatchPPG();
             /*[0]---心率;[1]---血压高压;[2]---血压低压;[3]---血氧;[4]---佩戴检测(1--脱手,2--上手);*/
-            if (checkCount > MaxtestCount || invalidateTime > 30) {
+            if (checkCount > MaxTestCount || invalidateTime > 30) {
                 //结束了,干掉超时任务
-                ppgLooper.removeCallbacks(mTask);
+                ppgLooper.removeCallbacks(mTimeoutTask);
                 handleResult();
             } else {
                 if (!continueTest) {
-                    ppgLooper.removeCallbacks(mTask);
+                    ppgLooper.removeCallbacks(mTimeoutTask);
                     handleResult();
                 } else {
-                    ppgLooper.removeCallbacks(mTask);
-                    ppgLooper.postDelayed(mTask, TIME_OUT_VALUE);
+                    ppgLooper.removeCallbacks(mTimeoutTask);
+                    ppgLooper.postDelayed(mTimeoutTask, TIME_OUT_VALUE);
                 }
             }
         } else {
index 8b6f2b6..0d52f76 100644 (file)
@@ -9,10 +9,7 @@ public interface ICWorkConstants {
      * 服务类型
      */
     interface ServiceType {
-        String ACTION_WEATHER = "com.ic.weather";
-        String ACTION_BLOOD = "com.ic.blood";
-        String ACTION_HARD_WARE = "com.ic.sport";
-        String ACTION_IC_TEMP = "com.ic.temp";
+        String ACTION_HARD_WARE = "sport";
         String ACTION_IC_AK = "com.ic.ak";
     }
 
index ef6b77e..ce6353d 100644 (file)
@@ -114,7 +114,8 @@ public class TemperatureUtil {
             }
             envTemp = get_tempOut_value_origin();
             wristTemp = get_temp_value_adjusted();
-
+            ICLogger.d("envTemp ==> " + envTemp);
+            ICLogger.d("wristTemp ==> " + wristTemp);
             String property = Utils.getSystemProperties("persist.sys.id_num", null);
             double resultEnvTemp = -100;
             double resultWristTemp = 0;
@@ -157,11 +158,15 @@ public class TemperatureUtil {
                 }
             } else if ("MW13C".equals(property)) {
                 wristTemp = AlgorithmUtils.getInstance(WorkServiceApp.sContext).MW13C(wristTemp,
-                        boardTemp, batteryTemp,envTemp);
+                        boardTemp, batteryTemp, envTemp);
+                ICLogger.d("wristTemp ==> " + wristTemp);
                 if (wristTemp == 0) {
                     return null;
                 }
+                resultWristTemp = wristTemp;
+                resultEnvTemp = envTemp;
                 lastBodyTemp = ICJniUtils.getBodyTempFromWristTemp(wristTemp, envTemp);
+                ICLogger.d("lastBodyTemp ==> " + lastBodyTemp);
             } else {
                 //   double bodyTempResult = AlgorithmUtils.l004Pt(bodyTemp, evnTemp);
                 ICLogger.d("wrist TempResult == > " + wristTemp);
@@ -185,6 +190,7 @@ public class TemperatureUtil {
                         "0.00",
                         String.format("%.01f", boardTemp),
                         "0.00");
+                ICLogger.d("temperatureItem ==> " + temperatureItem);
                 return temperatureItem;
             } catch (Exception e) {
                 e.printStackTrace();