From: SnickerSun Date: Tue, 2 May 2023 15:35:41 +0000 (+0800) Subject: release IcL02WorkService_V61_202305022333_release.apk X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=314db4fb7b51c011d6b772217d59cb228b0d0bef;p=icworkservice.git release IcL02WorkService_V61_202305022333_release.apk 修正日志输出 修正gh3018不出现佩戴消息,不能关闭心率,造成耗电的问题。 --- diff --git a/app/IcL02WorkService/release/IcL02WorkService_V61_202305022333_release.apk b/app/IcL02WorkService/release/IcL02WorkService_V61_202305022333_release.apk new file mode 100644 index 0000000..410c412 Binary files /dev/null and b/app/IcL02WorkService/release/IcL02WorkService_V61_202305022333_release.apk differ diff --git a/app/IcL02WorkService/release/output.json b/app/IcL02WorkService/release/output.json index e7e0149..00abcb6 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_V60_202212202120_release.apk","fullName":"IcL02WorkServiceRelease","baseName":"IcL02WorkService-release"},"path":"IcL02WorkService_V60_202212202120_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_202305022333_release.apk","fullName":"IcL02WorkServiceRelease","baseName":"IcL02WorkService-release"},"path":"IcL02WorkService_V61_202305022333_release.apk","properties":{}}] \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4889914..9c6c048 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -73,6 +73,7 @@ + diff --git a/app/src/main/java/com/ic/work/SensorDataService.java b/app/src/main/java/com/ic/work/SensorDataService.java index 358ce0e..51e49c8 100644 --- a/app/src/main/java/com/ic/work/SensorDataService.java +++ b/app/src/main/java/com/ic/work/SensorDataService.java @@ -50,6 +50,7 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp public static final String KEY_TEMP_WRIST = "wrist"; // double 腕温 public static final String KEY_TEMP_OUT = "out"; // double 腕温 private static final String HEART_ACTION = "com.ic.action.BLOOD_HEART"; + public static final String ACTION_WORKSERVICE_SECOND_TIMER = "action.WORK_SERVICE_SECOND_TIMER"; private static final String TAG = "SensorDataService"; private final LinkedBlockingDeque mTaskList = new LinkedBlockingDeque<>(); @@ -439,6 +440,9 @@ public class SensorDataService extends Service implements TemperatureHelper.Temp jxTempMode = intent.getIntExtra(JX_KEY_MODE, -1); //创建测试温度的任务 createTask(jxTempMode, TestTaskEvent.SensorType.TEMPERATURE, null); + } else if (ACTION_WORKSERVICE_SECOND_TIMER.equals(action)){ + ICLogger.d("onStartCommand "+ACTION_WORKSERVICE_SECOND_TIMER); + BloodInfoHelper.getInstance().checkResultData(); } return super.onStartCommand(intent, flags, startId); } 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 8a1727e..237a165 100644 --- a/app/src/main/java/com/ic/work/hardware/BloodInfoHelper.java +++ b/app/src/main/java/com/ic/work/hardware/BloodInfoHelper.java @@ -6,9 +6,11 @@ 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.utils.ICLogger; import com.ic.work.utils.IcLog; +import com.ic.work.utils.Utils; import java.util.Random; @@ -69,6 +71,8 @@ public class BloodInfoHelper implements SensorEventListener { checkCount = 0; noWearCount = 0; invalidateTime = 0; + + Utils.setSensorDataServiceRealTimeAlarmInSeconds(WorkServiceApp.sContext,1, SensorDataService.ACTION_WORKSERVICE_SECOND_TIMER); } else { //这个走JNI获取数据的,完成了 ICLogger.e("No Blood sensor "); @@ -117,25 +121,10 @@ public class BloodInfoHelper implements SensorEventListener { this.mListener = listener; } - @Override - public void onSensorChanged(SensorEvent event) { - float values[] = event.values; - int length = values.length; - Log.e(TAG, "onSensorChanged() is called " + length); - if (length >= 5) { - /*[0]---心率;[1]---血压高压;[2]---血压低压;[3]---血氧;[4]---佩戴检测(1--脱手,2--上手);*/ - Log.e(TAG, "onSensorChanged() is called " + length - + "PPG= " + values[0] - + "BPH= " + values[1] - + "BPL= " + values[2] - + "spo2= " + values[3] - + "Weared= " + values[4] - ); - } else { - Log.d(TAG, "on sensor change == > PPG= " + values[0]); - } - ndkHeart = (int) values[0]; - isWear = (int)values[4] > 1; + /** + * 按秒钟检查测试结果,防止无佩戴时长时间不超时。 + */ + public void checkResultData(){ IcLog.d(TAG, "isWear == > " + isWear); if (!isWear) { //延时1秒进行检查 @@ -143,6 +132,7 @@ public class BloodInfoHelper implements SensorEventListener { IcLog.d(TAG, "noWearCount == > " + noWearCount); if (noWearCount > 20) { handleResult(); + return; } } else { noWearCount = 0; @@ -150,10 +140,6 @@ public class BloodInfoHelper implements SensorEventListener { } if (ndkHeart > 0) { - ndkHigh = (int)values[1]; - ndkLow = (int)values[2]; - oxygen = (int)values[3]; - if (oxygen <= 0) oxygen = randomOxygenValue(); if (mListener != null) { IcLog.d(TAG, "ndkHigh == > " + ndkHigh + "ndkLow == > " + ndkLow + "oxygen == > " + oxygen); mListener.onHeartRateUpdate(ndkHigh, ndkLow, ndkHeart, oxygen); @@ -164,6 +150,7 @@ public class BloodInfoHelper implements SensorEventListener { //继续测试 } else { handleResult(); + return; } IcLog.d(TAG, "use time == > " + (System.currentTimeMillis() - getPPGStartTime)); } else { @@ -173,8 +160,37 @@ public class BloodInfoHelper implements SensorEventListener { if (invalidateTime <= 30) { } else { handleResult(); + return; } } + Utils.setSensorDataServiceRealTimeAlarmInSeconds(WorkServiceApp.sContext,1, SensorDataService.ACTION_WORKSERVICE_SECOND_TIMER); + + } + @Override + public void onSensorChanged(SensorEvent event) { + float values[] = event.values; + int length = values.length; + Log.e(TAG, "onSensorChanged() is called " + length); + if (length >= 5) { + /*[0]---心率;[1]---血压高压;[2]---血压低压;[3]---血氧;[4]---佩戴检测(1--脱手,2--上手);*/ + Log.e(TAG, "onSensorChanged() is called " + length + + "PPG= " + values[0] + + "BPH= " + values[1] + + "BPL= " + values[2] + + "spo2= " + values[3] + + "Weared= " + values[4] + ); + } else { + Log.d(TAG, "on sensor change == > PPG= " + values[0]); + } + ndkHeart = (int) values[0]; + isWear = (int)values[4] > 1; + if (ndkHeart > 0) { + ndkHigh = (int) values[1]; + ndkLow = (int) values[2]; + oxygen = (int) values[3]; + if (oxygen <= 0) oxygen = randomOxygenValue(); + } } @Override diff --git a/app/src/main/java/com/ic/work/hardware/TemperatureHelper.java b/app/src/main/java/com/ic/work/hardware/TemperatureHelper.java index 3678d17..f68f165 100644 --- a/app/src/main/java/com/ic/work/hardware/TemperatureHelper.java +++ b/app/src/main/java/com/ic/work/hardware/TemperatureHelper.java @@ -112,8 +112,8 @@ public class TemperatureHelper implements SensorEventListener { if (delayTimesInSeconds <= 0) { if (mListener != null) { ICLogger.d("result == >lastWristTemp " + lastWristTemp + " lastBodyTemp" + lastBodyTemp + " lastTempOut" + lastTempOut); - mSensorManager.unregisterListener(this); mListener.onTemperatureResult(lastWristTemp, lastBodyTemp, lastTempOut); + mSensorManager.unregisterListener(this); } } } diff --git a/app/src/main/java/com/ic/work/utils/ICLogger.java b/app/src/main/java/com/ic/work/utils/ICLogger.java index 1bbfcce..ce865f0 100644 --- a/app/src/main/java/com/ic/work/utils/ICLogger.java +++ b/app/src/main/java/com/ic/work/utils/ICLogger.java @@ -23,12 +23,6 @@ public class ICLogger { private static Context mContext = null; private static Logger Log = null; - private static Logger GPS = null; - private static Logger Nmea = null; - private static Logger APILog = null; - private static Logger alarmCycle = null; - private static Logger Battery = null; - private static Logger LBS = null; // private static java.util.logging.Logger originLog= getLogger(ICLogger.class.getSimpleName()); private static final boolean DEBUG = true; //BuildConfig.DEBUG; @@ -116,71 +110,18 @@ public class ICLogger { //Log 和log目前是同一个配置 Log = getLogger("log"); Log.info("init Logger " + Log.getName()); -// Log.addAppender( getRollingFileAppender("log","%d %m%n ")); -// Log.info("init Logger "+Log.getName()+" "+((RollingFileAppender)Log.getAppender("log")).getFile()); - - GPS = getLogger("GPS"); - GPS.addAppender(getRollingFileAppender("GPS", "%d %m%n ")); - GPS.info("init Logger " + GPS.getName() + " " + ((RollingFileAppender) GPS.getAppender("GPS")).getFile()); - - Nmea = getLogger("Nmea"); - Nmea.addAppender(getRollingFileAppender("Nmea", "%m%n")); - Nmea.info("init Logger " + Nmea.getName() + " " + ((RollingFileAppender) Nmea.getAppender("Nmea")).getFile()); - - APILog = getLogger("APILog"); - APILog.addAppender(getRollingFileAppender("APILog", "%d %m%n ")); - APILog.info("init Logger " + APILog.getName() + " " + ((RollingFileAppender) APILog.getAppender("APILog")).getFile()); - - alarmCycle = getLogger("alarmCycle"); - alarmCycle.addAppender(getRollingFileAppender("alarmCycle", "%d %m%n ")); - alarmCycle.info("init Logger " + alarmCycle.getName() + " " + ((RollingFileAppender) alarmCycle.getAppender("alarmCycle")).getFile()); - - Battery = getLogger("Battery"); - Battery.addAppender(getRollingFileAppender("Battery", "%d %m%n ")); - Battery.info("init Logger " + Battery.getName() + " " + ((RollingFileAppender) Battery.getAppender("Battery")).getFile()); - - - LBS = getLogger("LBS"); - LBS.addAppender(getRollingFileAppender("LBS", "%d %m%n ")); - LBS.info("init Logger " + LBS.getName() + " " + ((RollingFileAppender) LBS.getAppender("LBS")).getFile()); + //Log.addAppender( getRollingFileAppender("log","%d %m%n ")); + //Log.info("init Logger "+Log.getName()+" "+((RollingFileAppender)Log.getAppender("log")).getFile()); isInitConfig = true; } } public static void logRAWtoFile(String filename, String msg) { - if (filename.equals("Nmea")) { - Nmea.info(msg); - } else if (filename.equals("LBS")) { - LBS.info(msg); - } else if (filename.equals("GPS")) { - GPS.info(msg); - } else if (filename.equals("APILog")) { - APILog.info(msg); - } else if (filename.equals("alarmCycle")) { - alarmCycle.info(msg); - } else if (filename.equals("Battery")) { - Battery.info(msg); - } else { - Log.info(msg); - } + Log.info(msg); } public static void logToFile(String filename, String msg) { - if (filename.equals("Nmea")) { - Nmea.info(msg); - } else if (filename.equals("LBS")) { - LBS.info(msg); - } else if (filename.equals("GPS")) { - GPS.info(msg); - } else if (filename.equals("APILog")) { - APILog.info(msg); - } else if (filename.equals("alarmCycle")) { - alarmCycle.info(msg); - } else if (filename.equals("Battery")) { - Battery.info(msg); - } else { - Log.info(msg); - } + Log.info(msg); } private static RollingFileAppender getRollingFileAppender(String name, String layoutpattern) { diff --git a/app/src/main/java/com/ic/work/utils/StorageUtils.java b/app/src/main/java/com/ic/work/utils/StorageUtils.java index d8107a7..5d2ec5d 100644 --- a/app/src/main/java/com/ic/work/utils/StorageUtils.java +++ b/app/src/main/java/com/ic/work/utils/StorageUtils.java @@ -54,7 +54,7 @@ public final class StorageUtils { if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) { dir = new File(Environment.getExternalStoragePublicDirectory(DIRECTORY_DOCUMENTS), "Android/ic/icWorkService"); } else { - dir = new File(Environment.getExternalStorageDirectory().getPath(), "Android/ic/icprotocol"); + dir = new File(Environment.getExternalStorageDirectory().getPath(), "Android/ic/icWorkService"); } String path = dir.getPath(); diff --git a/app/src/main/java/com/ic/work/utils/Utils.java b/app/src/main/java/com/ic/work/utils/Utils.java index e6a9f8f..361a567 100644 --- a/app/src/main/java/com/ic/work/utils/Utils.java +++ b/app/src/main/java/com/ic/work/utils/Utils.java @@ -1,5 +1,15 @@ package com.ic.work.utils; +import android.app.AlarmManager; +import android.app.PendingIntent; +import android.content.Context; +import android.content.Intent; +import android.os.Build; +import android.os.SystemClock; + +import com.ic.work.SensorDataService; +import com.ic.work.WorkService; + import java.lang.reflect.Method; public class Utils { @@ -21,5 +31,17 @@ public class Utils { } return str; } - + public static void setSensorDataServiceRealTimeAlarmInSeconds(Context context, int seconds, String actionname) { + AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); + Intent intent = new Intent(context, SensorDataService.class); + intent.setAction(actionname); + PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); + alarmManager.cancel(pendingIntent); + long l = SystemClock.elapsedRealtime(); + if (Build.VERSION.SDK_INT >= 19) { + alarmManager.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP, l + (seconds * 1000), pendingIntent); + return; + } + alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, l + (seconds * 1000), pendingIntent); + } } diff --git a/app/version_code.properties b/app/version_code.properties index 38e8980..e9f3555 100644 --- a/app/version_code.properties +++ b/app/version_code.properties @@ -1,2 +1,2 @@ #Thu Jul 16 16:46:05 CST 2020 -VERSION_CODE=60 +VERSION_CODE=61