release IcL02WorkService_V61_202306132256_release.apk mt2
authorSnickerSun <snickersun@163.com>
Wed, 14 Jun 2023 09:54:21 +0000 (17:54 +0800)
committerSnickerSun <snickersun@163.com>
Wed, 14 Jun 2023 09:54:21 +0000 (17:54 +0800)
体温,心率测试 增加时间限制,确保其可以关闭

.idea/misc.xml
app/IcL02WorkService/release/IcL02WorkService_V61_202306112300_release.apk [deleted file]
app/IcL02WorkService/release/IcL02WorkService_V61_202306132256_release.apk [new file with mode: 0644]
app/IcL02WorkService/release/output.json
app/src/main/aidl/com/ic/aidl/ped/IPedAidlInterface.aidl
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/hardware/TemperatureHelper.java
app/src/main/java/com/ic/work/utils/Utils.java

index 43a4ffc..2e4874f 100644 (file)
@@ -6,7 +6,7 @@
     <option name="priority" value="Medium" />
     <option name="excludeFilter" value="" />
   </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="false" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="false" project-jdk-name="1.8" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/build/classes" />
   </component>
   <component name="ProjectType">
diff --git a/app/IcL02WorkService/release/IcL02WorkService_V61_202306112300_release.apk b/app/IcL02WorkService/release/IcL02WorkService_V61_202306112300_release.apk
deleted file mode 100644 (file)
index fd91b5f..0000000
Binary files a/app/IcL02WorkService/release/IcL02WorkService_V61_202306112300_release.apk and /dev/null differ
diff --git a/app/IcL02WorkService/release/IcL02WorkService_V61_202306132256_release.apk b/app/IcL02WorkService/release/IcL02WorkService_V61_202306132256_release.apk
new file mode 100644 (file)
index 0000000..f51e672
Binary files /dev/null and b/app/IcL02WorkService/release/IcL02WorkService_V61_202306132256_release.apk differ
index 9e7bc40..5f4437d 100644 (file)
@@ -1 +1 @@
-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.1","enabled":true,"outputFile":"IcL02WorkService_V61_202306112300_release.apk","fullName":"IcL02WorkServiceRelease","baseName":"IcL02WorkService-release"},"path":"IcL02WorkService_V61_202306112300_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_V61_202306132256_release.apk","fullName":"IcL02WorkServiceRelease","baseName":"IcL02WorkService-release"},"path":"IcL02WorkService_V61_202306132256_release.apk","properties":{}}]
\ No newline at end of file
index 547e996..ba08675 100644 (file)
@@ -10,6 +10,7 @@ interface IPedAidlInterface {
      * and return values in AIDL.
      */
      void updatePedCount(int count);
+     void updateCalorie(float count);
      void updatePedRecord(in List<RecordParcelable> record);
 
 }
index 0b75e64..035e70f 100644 (file)
@@ -115,10 +115,10 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp
         switch (testTaskEvent.sensorType) {
             case HEART_RATE:
                 //获取心率内容
-                getHeartInfo();
+                getHeartInfo(testTaskEvent.from);
                 break;
             case TEMPERATURE:
-                getTemperatureInfo();
+                getTemperatureInfo(testTaskEvent.from);
                 break;
             default:
                 ICLogger.d( "not support sensor..or you can add new one by coding..");
@@ -165,15 +165,15 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp
     /**
      * 获取温度相关的信息
      */
-    private void getTemperatureInfo() {
-        ICLogger.d( "getTemperatureInfo..." + Thread.currentThread().getName());
-        TemperatureHelper.getInstance().getTemperature();
+    private void getTemperatureInfo(TestTaskEvent.From cmd_from) {
+        ICLogger.d( "getTemperatureInfo..." + Thread.currentThread().getName()+" "+cmd_from);
+        TemperatureHelper.getInstance().getTemperature(cmd_from);
     }
 
     //获取心率,这里要完成整个过程
-    private void getHeartInfo() {
+    private void getHeartInfo(TestTaskEvent.From cmd_from) {
         ICLogger.d( "getHeartInfo..." + Thread.currentThread().getName());
-        BloodInfoHelper.getInstance().getBloodInfo();
+        BloodInfoHelper.getInstance().getBloodInfo(cmd_from);
     }
 
     @Override
@@ -442,8 +442,19 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp
             //创建测试温度的任务
             createTask(jxTempMode, TestTaskEvent.SensorType.TEMPERATURE, null);
         } else if (ACTION_WORKSERVICE_SECOND_TIMER.equals(action)){
-            ICLogger.d("onStartCommand "+ACTION_WORKSERVICE_SECOND_TIMER);
-            BloodInfoHelper.getInstance().checkResultData();
+            if(currentTask !=null) {
+                ICLogger.d("onStartCommand " + ACTION_WORKSERVICE_SECOND_TIMER + " " + currentTask.sensorType);
+                if(currentTask.sensorType == TestTaskEvent.SensorType.HEART_RATE) {
+                    BloodInfoHelper.getInstance().checkResultData();
+                }else if (currentTask.sensorType == TestTaskEvent.SensorType.TEMPERATURE)
+                {
+                    TemperatureHelper.getInstance().checkResultData();
+                }
+            }
+            else
+                ICLogger.d("onStartCommand "+ACTION_WORKSERVICE_SECOND_TIMER);
+
+
         }
         return super.onStartCommand(intent, flags, startId);
     }
index 7c704eb..9905f07 100644 (file)
@@ -80,7 +80,7 @@ public class WorkService extends Service {
     @Override
     public IBinder onBind(Intent intent) {
         if (intent != null) {
-            ICLogger.i( intent.getPackage());
+            ICLogger.i( "onBind "+ intent.getPackage());
             switch (intent.getPackage()) {
                 case ACTION_WEATHER:
                     //天气
index 0e1667d..b743cf9 100644 (file)
@@ -8,6 +8,7 @@ import android.util.Log;
 
 import com.ic.work.SensorDataService;
 import com.ic.work.WorkServiceApp;
+import com.ic.work.event.TestTaskEvent;
 import com.ic.work.utils.ICLogger;
 import com.ic.work.utils.Utils;
 
@@ -25,11 +26,14 @@ public class BloodInfoHelper implements SensorEventListener {
     private long checkBloodStartTime;
     private SensorManager mSensorManager;
     private Sensor mHeartRate;
+    private static TestTaskEvent.From  from = TestTaskEvent.From.SERVER_CMD;
     public static int SYSTEM_TEST = SensorManager.SENSOR_DELAY_UI; // 66
     public static int SYSTEM_TEST_CTR = SensorManager.SENSOR_DELAY_GAME; //20
     public static int PPG_TEST = SensorManager.SENSOR_DELAY_NORMAL; //200
     public static int SPO2_TEST = SensorManager.SENSOR_DELAY_FASTEST ; //1
 
+    private static int default_max_test_count=20;
+
     private BloodInfoHelper() {
         mSensorManager = (SensorManager) WorkServiceApp.sContext.getSystemService(SENSOR_SERVICE);
         mHeartRate = mSensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE);
@@ -51,8 +55,9 @@ public class BloodInfoHelper implements SensorEventListener {
 
     private static final String TAG = "BloodInfoHelper";
 
-    public void getBloodInfo() {
-        ICLogger.d("getBloodInfo...");
+    public void getBloodInfo(TestTaskEvent.From cmd_from) {
+        from = cmd_from;
+        ICLogger.d("getBloodInfo..."+from);
         boolean ret = mSensorManager.registerListener(this, mHeartRate, PPG_TEST);
         Log.d(TAG, "ret == > " + ret);
         if(ret) {
@@ -129,7 +134,7 @@ public class BloodInfoHelper implements SensorEventListener {
             //延时1秒进行检查
             noWearCount++;
             ICLogger.d( "noWearCount == > " + noWearCount);
-            if (noWearCount > 20) {
+            if (noWearCount > 10) {
                 handleResult();
                 return;
             }
@@ -156,7 +161,7 @@ public class BloodInfoHelper implements SensorEventListener {
             //如果为0的话,记录下来
             invalidateTime++;
             ICLogger.d( "invalidateTime == > " + invalidateTime);
-            if (invalidateTime <= 30) {
+            if (invalidateTime <= 20) {
             } else {
                 handleResult();
                 return;
@@ -190,6 +195,8 @@ public class BloodInfoHelper implements SensorEventListener {
             oxygen = (int) values[3];
             if (oxygen <= 0) oxygen = randomOxygenValue();
         }
+
+        checkResultData();
     }
 
     @Override
index 3296dcb..75c6d22 100644 (file)
@@ -6,9 +6,12 @@ import android.hardware.SensorEventListener;
 import android.hardware.SensorManager;
 import android.util.Log;
 
+import com.ic.work.SensorDataService;
 import com.ic.work.WorkServiceApp;
+import com.ic.work.event.TestTaskEvent;
 import com.ic.work.utils.ICLogger;
 import com.ic.work.utils.TemperatureUtil;
+import com.ic.work.utils.Utils;
 
 import static android.content.Context.SENSOR_SERVICE;
 
@@ -41,23 +44,29 @@ public class TemperatureHelper implements SensorEventListener {
     private double lastTempOut = 0.0;
     private double lastBodyTemp = 0.0;
     private double lastWristTemp = 0.0;
-    private final int DefaultDelayTimesInSeconds = 5;
+    private final int DefaultDelayTimesInSeconds = 10;
     private int delayTimesInSeconds = DefaultDelayTimesInSeconds;
     private SensorManager mSensorManager ;
+    private static TestTaskEvent.From from = TestTaskEvent.From.SERVER_CMD;
     private Sensor mSensorTemp;
     private long getTempStartTime=0;
-    public void getTemperature() {
+    public void getTemperature(TestTaskEvent.From cmd_from) {
 
         getTempStartTime = System.currentTimeMillis();
         lastTempOut = 0.0;
         lastBodyTemp = 0.0;
         lastWristTemp = 0.0;
-        delayTimesInSeconds = DefaultDelayTimesInSeconds;
-        ICLogger.i( "getTemperature ..." );
+        from = cmd_from;
+        ICLogger.i( "getTemperature ..."+from );
+        if(from == TestTaskEvent.From.SERVER_CMD)
+            delayTimesInSeconds = 10;
+        else
+            delayTimesInSeconds = DefaultDelayTimesInSeconds;
         mSensorManager = (SensorManager) WorkServiceApp.sContext.getSystemService(SENSOR_SERVICE);
         mSensorTemp = mSensorManager.getDefaultSensor(Sensor.TYPE_TEMPERATURE);
         boolean ret = mSensorManager.registerListener(this, mSensorTemp, SensorManager.SENSOR_DELAY_NORMAL);
         Log.d(TAG, "ret == > " + ret);
+        Utils.setSensorDataServiceRealTimeAlarmInSeconds(WorkServiceApp.sContext,1, SensorDataService.ACTION_WORKSERVICE_SECOND_TIMER);
 
     }
 
@@ -72,52 +81,52 @@ public class TemperatureHelper implements SensorEventListener {
         if(sensorEvent.sensor.getType() == Sensor.TYPE_TEMPERATURE) {
             ICLogger.d( "type is == >" + sensorEvent.sensor.getName());
             lastWristTemp = values[0] / 100.0f;
-            lastTempOut = 0.0f;// values[1] / 100.0f;
+            if (length > 1){
+                lastTempOut = values[1] / 100.0f;
+            }else {
+                lastTempOut = 0.0f;// values[1] / 100.0f;
+            }
             Log.d(TAG, "on sensor change == > lastWristTemp= " + lastWristTemp + " lastTempOut=" + lastTempOut);
 
-/*
-
-                 TemperatureItem temperatureItem = null;
-                    temperatureItem = TemperatureUtil.doTempTest();
-                    if (temperatureItem != null) {
-                        lastWristTemp = Double.parseDouble(temperatureItem.getBodyTemp());
-                        lastTempOut = Double.parseDouble(temperatureItem.getEvnTemp());
-                    }
-
- */
-
-            if (lastTempOut > 60 || lastTempOut < 1) {
-                lastTempOut = 0.0f;
-            }
-            if (lastTempOut > 0.0f) {
-                lastBodyTemp = TemperatureUtil.getBodyTemp(lastWristTemp, lastTempOut);
-            } else {
-                lastBodyTemp = TemperatureUtil.getBodyTemp(lastWristTemp, 26.0f);
-            }
-            ICLogger.d( "testing..." + lastWristTemp + " " + lastBodyTemp + " " + lastTempOut);
-            //前10秒不更新内容,后10秒再更新数据
-            if (delayTimesInSeconds <= 10 && mListener != null) {
-                ICLogger.d( "update temperature info..thread name is ." + Thread.currentThread().getName());
-                //获取
-                ICLogger.d( "lastWristTemp == > " + lastWristTemp);
-                ICLogger.d( "lastBodyTemp == > " + lastBodyTemp);
-                ICLogger.d( "lastTempOut == > " + lastTempOut);
-                mListener.onTemperatureUpdate(lastWristTemp, lastBodyTemp, lastTempOut);
+        }
+        checkResultData();
+    }
+    /**
+     * 按秒钟检查测试结果,防止无佩戴时长时间不超时。
+     */
+    public void checkResultData(){
+        if (lastTempOut > 60 || lastTempOut < 1) {
+            lastTempOut = 0.0f;
+        }
+        if (lastTempOut > 0.0f) {
+            lastBodyTemp = TemperatureUtil.getBodyTemp(lastWristTemp, lastTempOut);
+        } else {
+            lastBodyTemp = TemperatureUtil.getBodyTemp(lastWristTemp, 26.0f);
+        }
+        ICLogger.d( "testing..." + lastWristTemp + " " + lastBodyTemp + " " + lastTempOut);
+        //前10秒不更新内容,后10秒再更新数据
+        if (delayTimesInSeconds <= 10 && mListener != null) {
+            ICLogger.d( "update temperature info..thread name is ." + Thread.currentThread().getName());
+            //获取
+            ICLogger.d( "lastWristTemp == > " + lastWristTemp);
+            ICLogger.d( "lastBodyTemp == > " + lastBodyTemp);
+            ICLogger.d( "lastTempOut == > " + lastTempOut);
+            mListener.onTemperatureUpdate(lastWristTemp, lastBodyTemp, lastTempOut);
+        }
+        ICLogger.d("get temperature data use time == > " + (System.currentTimeMillis() - getTempStartTime));
+
+        delayTimesInSeconds--;
+        ICLogger.d( "delayTimesInSeconds " + delayTimesInSeconds);
+        if (delayTimesInSeconds <= 0) {
+            if (mListener != null) {
+                ICLogger.d("result == >lastWristTemp " + lastWristTemp + " lastBodyTemp" + lastBodyTemp + " lastTempOut" + lastTempOut);
+                mListener.onTemperatureResult(lastWristTemp, lastBodyTemp, lastTempOut);
             }
-            ICLogger.d("get temperature data use time == > " + (System.currentTimeMillis() - getTempStartTime));
-
-            delayTimesInSeconds--;
-            ICLogger.d( "delayTimesInSeconds " + delayTimesInSeconds);
-             if (delayTimesInSeconds <= 0) {
-                 if (mListener != null) {
-                     ICLogger.d("result == >lastWristTemp " + lastWristTemp + " lastBodyTemp" + lastBodyTemp + " lastTempOut" + lastTempOut);
-                     mListener.onTemperatureResult(lastWristTemp, lastBodyTemp, lastTempOut);
-                     mSensorManager.unregisterListener(this);
-                 }
-             }
+            mSensorManager.unregisterListener(this);
+        }else {
+            Utils.setSensorDataServiceRealTimeAlarmInSeconds(WorkServiceApp.sContext, 1, SensorDataService.ACTION_WORKSERVICE_SECOND_TIMER);
         }
     }
-
     @Override
     public void onAccuracyChanged(Sensor sensor, int i) {
 
index 361a567..bfebf37 100644 (file)
@@ -39,9 +39,11 @@ public class Utils {
         alarmManager.cancel(pendingIntent);
         long l = SystemClock.elapsedRealtime();
         if (Build.VERSION.SDK_INT >= 19) {
-            alarmManager.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP, l + (seconds * 1000), pendingIntent);
+            ICLogger.d("ELAPSED_REALTIME_WAKEUP "+seconds);
+            alarmManager.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP, l + (seconds * 1000 ), pendingIntent);
             return;
         }
-        alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, l + (seconds * 1000), pendingIntent);
+        ICLogger.d("ELAPSED_REALTIME_WAKEUP "+seconds);
+        alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, l + (seconds * 1000 ), pendingIntent);
     }
 }