From: TrillGates Date: Thu, 17 Jun 2021 09:31:38 +0000 (+0800) Subject: add step count and calorie to db for watchface. X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=9b0e0cafd229c3ffa16286b2c482846fc6bb0229;p=icworkservice.git add step count and calorie to db for watchface. --- diff --git a/app/IcL02WorkService/release/IcL02WorkService_V59_202105291708_release.apk b/app/IcL02WorkService/release/IcL02WorkService_V59_202105291708_release.apk deleted file mode 100644 index 78c2b37..0000000 Binary files a/app/IcL02WorkService/release/IcL02WorkService_V59_202105291708_release.apk and /dev/null differ diff --git a/app/IcL02WorkService/release/IcL02WorkService_V59_202106171726_release.apk b/app/IcL02WorkService/release/IcL02WorkService_V59_202106171726_release.apk new file mode 100644 index 0000000..2d21064 Binary files /dev/null and b/app/IcL02WorkService/release/IcL02WorkService_V59_202106171726_release.apk differ diff --git a/app/IcL02WorkService/release/output.json b/app/IcL02WorkService/release/output.json index c2c6b89..630164c 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_202105291708_release.apk","fullName":"IcL02WorkServiceRelease","baseName":"IcL02WorkService-release"},"path":"IcL02WorkService_V59_202105291708_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_202106171726_release.apk","fullName":"IcL02WorkServiceRelease","baseName":"IcL02WorkService-release"},"path":"IcL02WorkService_V59_202106171726_release.apk","properties":{}}] \ No newline at end of file diff --git a/app/src/main/aidl/com/ic/aidl/ped/RecordParcelable.java b/app/src/main/aidl/com/ic/aidl/ped/RecordParcelable.java index bcdef77..d393032 100644 --- a/app/src/main/aidl/com/ic/aidl/ped/RecordParcelable.java +++ b/app/src/main/aidl/com/ic/aidl/ped/RecordParcelable.java @@ -85,4 +85,14 @@ public class RecordParcelable implements Parcelable { public void setDate(String date) { this.date = date; } + + @Override + public String toString() { + return "RecordParcelable{" + + "number=" + number + + ", distance='" + distance + '\'' + + ", calorie='" + calorie + '\'' + + ", date='" + date + '\'' + + '}'; + } } diff --git a/app/src/main/java/com/ic/work/WorkService.java b/app/src/main/java/com/ic/work/WorkService.java index b3f1e90..4d16d5b 100644 --- a/app/src/main/java/com/ic/work/WorkService.java +++ b/app/src/main/java/com/ic/work/WorkService.java @@ -253,7 +253,8 @@ public class WorkService extends Service { mIsBusy = true; switch (eventType) { case TEST_STEP://脚步 - ThreadPoolManager.getInstance().execute(new PedRunnable(mApp.getApplicationContext(), mApp.getRepository())); + ThreadPoolManager.getInstance().execute(new PedRunnable(mApp.getApplicationContext(), + mApp.getRepository())); break; case STEP_RECORD: ThreadPoolManager.getInstance().execute(new PedRecordRunnable(mApp.getRepository())); 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 c80e481..9330fd5 100644 --- a/app/src/main/java/com/ic/work/hardware/BloodInfoHelper.java +++ b/app/src/main/java/com/ic/work/hardware/BloodInfoHelper.java @@ -282,7 +282,6 @@ public class BloodInfoHelper implements SensorEventListener { + "spo2= " + values[3] + "Weared= " + values[4] ); - ndkHeart = (int) values[0];//调用底层函数保证状态更新。 ndkHigh = (int) values[1]; ndkLow = (int) values[2]; diff --git a/app/src/main/java/com/ic/work/hardware/PedBaseRunnable.java b/app/src/main/java/com/ic/work/hardware/PedBaseRunnable.java index bcbca8b..e687303 100644 --- a/app/src/main/java/com/ic/work/hardware/PedBaseRunnable.java +++ b/app/src/main/java/com/ic/work/hardware/PedBaseRunnable.java @@ -1,7 +1,10 @@ package com.ic.work.hardware; +import android.content.ContentValues; import android.content.Context; +import android.net.Uri; +import com.ic.work.SensorDataService; import com.ic.work.db.PedInjection; import com.ic.work.db.entity.PedEntity; import com.ic.work.utils.PedUtil; @@ -15,12 +18,14 @@ import java.util.List; public class PedBaseRunnable { + private final Context mContext; private PedInjection mPedInjection; private int mHeight; private int mWeight; protected PedBaseRunnable(Context context, PedInjection pedInjection) { mPedInjection = pedInjection; + this.mContext = context; mHeight = SPUtils.getPedHeightSP(context); mWeight = SPUtils.getPedWighttSP(context); } @@ -33,7 +38,7 @@ public class PedBaseRunnable { return mPedInjection.queryDBPedCount(); } - private List queryTimePedEntity(OffsetDateTime time){ + private List queryTimePedEntity(OffsetDateTime time) { return mPedInjection.queryDBPedDate(time); } @@ -51,21 +56,28 @@ public class PedBaseRunnable { protected void updateDBPedEntity(PedEntity entity) { int number = entity.getPedNumber(); + //更新到全局公用数据中去 + ContentValues contentValues = new ContentValues(); + contentValues.put("s_key", "sport_step_count"); + contentValues.put("s_value", number); + mContext.getContentResolver().insert( + Uri.parse(SensorDataService.SETTINGS), contentValues + ); entity.setPedDistance(getDistanceValue(number)); entity.setPedCalorie(getCalorieValue(number)); mPedInjection.updateDBPedDate(entity); } - protected void updateCountDB(int ped,OffsetDateTime dateTime){ + protected void updateCountDB(int ped, OffsetDateTime dateTime) { if (isCheckPedInjection()) { return; } int size = queryDBPedCount(); - if(size == 0){ + if (size == 0) { //如果数据库中无记录,把当前数据插入到数据库中 insertDBPedEntity(ped, dateTime, size); - }else { + } else { //2.去查询数据中是否有记录。 List todayPed = queryTimePedEntity(dateTime); if (todayPed != null && todayPed.size() > 0) { @@ -88,13 +100,18 @@ public class PedBaseRunnable { entity.setPedDistance(getDistanceValue(number)); entity.setPedCalorie(getCalorieValue(number)); entity.setPedDate(date); - return entity; } private String getCalorieValue(int number) { BigDecimal bg = new BigDecimal(PedUtil.calcConsumeEnergy(mHeight, mWeight, number)); - return String.valueOf(bg.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue()); + String value = String.valueOf(bg.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue()); + //保存一份到数据库中 + ContentValues contentValues = new ContentValues(); + contentValues.put("s_key", "sport_calorie_value"); + contentValues.put("s_value", value); + mContext.getContentResolver().insert(Uri.parse(SensorDataService.SETTINGS), contentValues); + return value; } private String getDistanceValue(int number) { diff --git a/app/src/main/java/com/ic/work/hardware/PedRecordRunnable.java b/app/src/main/java/com/ic/work/hardware/PedRecordRunnable.java index 79bf8fa..55e6eda 100644 --- a/app/src/main/java/com/ic/work/hardware/PedRecordRunnable.java +++ b/app/src/main/java/com/ic/work/hardware/PedRecordRunnable.java @@ -5,6 +5,7 @@ import com.ic.work.db.PedInjection; import com.ic.work.db.entity.PedEntity; import com.ic.work.event.PedRecordResultEvent; import com.ic.work.event.TaskFinishedEvent; +import com.ic.work.utils.ICLogger; import org.greenrobot.eventbus.EventBus; import org.threeten.bp.format.DateTimeFormatter; @@ -23,18 +24,18 @@ public class PedRecordRunnable implements Runnable { @Override public void run() { - List query = mPedDb.queryDBPedAllList(); - List recordList = new ArrayList<>(); - for (int i=0; i< query.size(); i++){ - RecordParcelable recordP = new RecordParcelable(); - recordP.setNumber(query.get(i).getPedNumber()); - recordP.setCalorie(query.get(i).getPedCalorie()); - recordP.setDistance(query.get(i).getPedDistance()); - recordP.setDate(query.get(i).getPedDate().format(formatter)); - - recordList.add(recordP); - } - //发送数据到主线程 + List query = mPedDb.queryDBPedAllList(); + List recordList = new ArrayList<>(); + for (int i = 0; i < query.size(); i++) { + RecordParcelable recordP = new RecordParcelable(); + recordP.setNumber(query.get(i).getPedNumber()); + recordP.setCalorie(query.get(i).getPedCalorie()); + recordP.setDistance(query.get(i).getPedDistance()); + recordP.setDate(query.get(i).getPedDate().format(formatter)); + ICLogger.d("recordP == > " + recordP.toString()); + recordList.add(recordP); + } + //发送数据到主线程 EventBus.getDefault().post(new PedRecordResultEvent(recordList)); //add by TrillGates notify task finished. EventBus.getDefault().post(new TaskFinishedEvent()); diff --git a/app/src/main/java/com/ic/work/utils/AlgorithmUtils.java b/app/src/main/java/com/ic/work/utils/AlgorithmUtils.java index 8a51493..f500020 100644 --- a/app/src/main/java/com/ic/work/utils/AlgorithmUtils.java +++ b/app/src/main/java/com/ic/work/utils/AlgorithmUtils.java @@ -102,4 +102,18 @@ public class AlgorithmUtils { } + + public static double l56A(double bodyTemp, double innerTemp) { + double dx; + if (innerTemp <= 40.5f) { + dx = 0.7229f * innerTemp - 24.707f; + } else if (innerTemp > 40.5f && innerTemp <= 42.15) { + dx = 0.742f * innerTemp - 25.4852f; + } else { + dx = 5.77f; + } + return bodyTemp - dx; + } + + } 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 b8dda2b..91026cc 100644 --- a/app/src/main/java/com/ic/work/utils/TemperatureUtil.java +++ b/app/src/main/java/com/ic/work/utils/TemperatureUtil.java @@ -104,6 +104,8 @@ public class TemperatureUtil { if ("l004pt".equals(property)) { double bodyTempResult = AlgorithmUtils.l004Pt(bodyTemp, evnTemp); ICLogger.d("bodyTempResult == > " + bodyTempResult); + //这个是换算后的腕温 + bodyTemp = bodyTempResult; if (bodyTempResult != -1) { //越接近34.1越准确 ICLogger.d("bodyTempResult == > " + bodyTempResult); @@ -122,15 +124,24 @@ public class TemperatureUtil { IcLog.d(TAG, "evnTemp == > " + evnTemp + " resultEnvTemp = > " + resultEnvTemp); IcLog.d(TAG, "bodyTemp == > " + bodyTemp + " resultBodyTemp = > " + lastBodyTemp); + } else if ("L56A".equals(property)) { + double bodyTempResult = AlgorithmUtils.l56A(bodyTemp, evnTemp); + bodyTemp = bodyTempResult; + ICLogger.d("bodyTempResult == > " + bodyTempResult); + if (bodyTempResult != -1) { + //越接近34.1越准确 + ICLogger.d("bodyTempResult == > " + bodyTempResult); + lastBodyTemp = getBodyTemp(bodyTempResult, 26.1f); + ICLogger.d("final body temp == > " + lastBodyTemp); + ICLogger.d("final wrist temp == > " + bodyTempResult); + } } else { - - // double bodyTempResult = AlgorithmUtils.l004Pt(bodyTemp, evnTemp); + // double bodyTempResult = AlgorithmUtils.l004Pt(bodyTemp, evnTemp); ICLogger.d("wrist TempResult == > " + bodyTemp); if (bodyTemp != -1) { //越接近34.1越准确 lastBodyTemp = getBodyTemp(bodyTemp, 26.1f); ICLogger.d("final body temp == > " + lastBodyTemp); - } }