From: TrillGates Date: Sat, 4 Dec 2021 11:44:58 +0000 (+0800) Subject: refactor codes. X-Git-Url: http://git.snicker.com.cn/sitemap.xml?a=commitdiff_plain;h=52563948c9fe4db6f41af2cf4c1e9e73cac918ef;p=icworkservice.git refactor codes. --- diff --git a/app/IcL02WorkService/release/IcL02WorkService_V59_202110261726_release.apk b/app/IcL02WorkService/release/IcL02WorkService_V59_202110261726_release.apk deleted file mode 100644 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 index 0000000..4aee548 Binary files /dev/null and b/app/IcL02WorkService/release/IcL02WorkService_V59_202110291644_release.apk differ diff --git a/app/IcL02WorkService/release/output.json b/app/IcL02WorkService/release/output.json index 1fa23b2..2006d9d 100644 --- a/app/IcL02WorkService/release/output.json +++ b/app/IcL02WorkService/release/output.json @@ -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 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d7d11de..27621a0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -47,8 +47,7 @@ + android:exported="true"> diff --git a/app/src/main/java/com/ic/work/MainActivity.java b/app/src/main/java/com/ic/work/MainActivity.java index aaf58f7..488df10 100644 --- a/app/src/main/java/com/ic/work/MainActivity.java +++ b/app/src/main/java/com/ic/work/MainActivity.java @@ -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()); } - } diff --git a/app/src/main/java/com/ic/work/SensorDataService.java b/app/src/main/java/com/ic/work/SensorDataService.java index 7da4ea6..6e88c1d 100644 --- a/app/src/main/java/com/ic/work/SensorDataService.java +++ b/app/src/main/java/com/ic/work/SensorDataService.java @@ -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) { diff --git a/app/src/main/java/com/ic/work/WorkService.java b/app/src/main/java/com/ic/work/WorkService.java index bfa66d7..5bbd22a 100644 --- a/app/src/main/java/com/ic/work/WorkService.java +++ b/app/src/main/java/com/ic/work/WorkService.java @@ -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); diff --git a/app/src/main/java/com/ic/work/hardware/BloodInfoHelper.java b/app/src/main/java/com/ic/work/hardware/BloodInfoHelper.java index e4c1cee..891c763 100644 --- a/app/src/main/java/com/ic/work/hardware/BloodInfoHelper.java +++ b/app/src/main/java/com/ic/work/hardware/BloodInfoHelper.java @@ -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 { diff --git a/app/src/main/java/com/ic/work/utils/ICWorkConstants.java b/app/src/main/java/com/ic/work/utils/ICWorkConstants.java index 8b6f2b6..0d52f76 100644 --- a/app/src/main/java/com/ic/work/utils/ICWorkConstants.java +++ b/app/src/main/java/com/ic/work/utils/ICWorkConstants.java @@ -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"; } diff --git a/app/src/main/java/com/ic/work/utils/TemperatureUtil.java b/app/src/main/java/com/ic/work/utils/TemperatureUtil.java index ef6b77e..ce6353d 100644 --- a/app/src/main/java/com/ic/work/utils/TemperatureUtil.java +++ b/app/src/main/java/com/ic/work/utils/TemperatureUtil.java @@ -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();