release V484
authorsnickersun <scy@incartech.cn>
Sat, 8 Aug 2020 04:28:22 +0000 (12:28 +0800)
committersnickersun <scy@incartech.cn>
Sat, 8 Aug 2020 04:28:22 +0000 (12:28 +0800)
protocol_ic BPX1 设置时,把 PPG ECG adj 数据共享出去
coreService 修复SOS时 心率检测仍然不受控的问题。
Config  修改AK 收到消息不弹出内部窗口, 通过persist.sys 共享睡眠数据,久坐配置和心率血压血氧校准

app/release/ICSer_V484_2008081221_release.apk [moved from app/release/ICSer_V479_2008061723_release.apk with 77% similarity]
app/release/output.json
app/src/main/java/com/enqualcomm/support/Config.java
app/src/main/java/com/enqualcomm/support/Constants.java
app/src/main/java/com/enqualcomm/support/CoreService.java
app/src/main/java/com/enqualcomm/support/utils/Util.java
app/src/main/java/com/enqualcomm/support/utils/sysProperties.java [new file with mode: 0644]
app/src/main/java/com/ic/protocols/protocol_ic.java
app/version_code.properties

similarity index 77%
rename from app/release/ICSer_V479_2008061723_release.apk
rename to app/release/ICSer_V484_2008081221_release.apk
index 692cba2..f56f171 100644 (file)
Binary files a/app/release/ICSer_V479_2008061723_release.apk and b/app/release/ICSer_V484_2008081221_release.apk differ
index 5364443..a6dff38 100644 (file)
@@ -1 +1 @@
-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":474,"versionName":"2008042035","enabled":true,"outputFile":"ICSer_V474_2008042035_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V474_2008042035_release.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":484,"versionName":"2008081221","enabled":true,"outputFile":"ICSer_V484_2008081221_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V484_2008081221_release.apk","properties":{}}]
\ No newline at end of file
index 59e3486..4ddf262 100644 (file)
@@ -2,6 +2,7 @@ package com.enqualcomm.support;
 \r
 import android.content.Context;\r
 import android.content.SharedPreferences;\r
+import android.provider.Settings;\r
 import android.text.TextUtils;\r
 \r
 import com.enqualcomm.support.bean.ICLocation;\r
@@ -376,6 +377,9 @@ public class Config {
       noTempSensor=false;\r
       needBroadcastAntiAlarm=false;\r
     }else if  ((custom_branch_name.equals("AK")) ){\r
+        noPushTxtNotifyDialog=true;\r
+        noSMSNotifyDialog=true;\r
+        noVoiceNotifyDialog=true;\r
       noPPGSensor=false;\r
       noTempSensor=true;\r
       SOSNoNeedDial=true; //采用新写的SOS,协议只需要发送消息,无需控制拨号。\r
@@ -534,28 +538,41 @@ public class Config {
     spo2adj=getSPo2Adjust(context);\r
     runtime.getHRS().setAdjust(ppgadj,bphadj,bpladj,spo2adj);\r
     ICLogger.i("Load Health adjust value  ppg "+ppgadj+", bph "+bphadj+", bpl "+bpladj+", spo2 "+spo2adj);\r
+  }\r
+\r
 \r
+\r
+  //心率血压血氧校准值\r
+  public static String getPPG_ECG_adjustValue(){\r
+    return Util.getSystemProperties("persist.sys."+Constants.SHAREKEY_SETTING_PPG_ECG_ADJUST,"0,0,0,0");\r
   }\r
 \r
+  public static void setPPG_ECG_adjustValue(String adjvalue){\r
+    Util.setSystemProperties("persist.sys."+Constants.SHAREKEY_SETTING_PPG_ECG_ADJUST,adjvalue);\r
+  }\r
 \r
   //久坐时间获取\r
   public static int getKeepSitRangeInMinutes(Context context ){\r
-    return SharPreferenceUtil.getPrefIntPublic(context,Constants.SHAREKEY_SETTING_SIT_ALARM_RANGE_IN_MINUTES,0);\r
+    return Util.getSystemPropertiesInt("persist.sys."+Constants.SHAREKEY_SETTING_SIT_ALARM_RANGE_IN_MINUTES,0);\r
+//    return SharPreferenceUtil.getPrefIntPublic(context,Constants.SHAREKEY_SETTING_SIT_ALARM_RANGE_IN_MINUTES,0);\r
   }\r
 \r
   //久坐时间设置\r
   public static void setKeepSitRangeInMinutes(Context context, int RangeInMinutes){\r
-\r
-    SharPreferenceUtil.setPrefIntPublic(context,Constants.SHAREKEY_SETTING_SIT_ALARM_RANGE_IN_MINUTES,RangeInMinutes);\r
+      Util.setSystemProperties("persist.sys."+Constants.SHAREKEY_SETTING_SIT_ALARM_RANGE_IN_MINUTES,RangeInMinutes);\r
+//    SharPreferenceUtil.setPrefIntPublic(context,Constants.SHAREKEY_SETTING_SIT_ALARM_RANGE_IN_MINUTES,RangeInMinutes);\r
   }\r
 \r
   public static void setSleepDate(Context context,String dateyyyyMMddHHmmss){\r
-    SharPreferenceUtil.setPrefStringPublic(context,Constants.SHAREKEY_SETTING_SLEEP_SCORE_DATE,dateyyyyMMddHHmmss);\r
+    Util.setSystemProperties("persist.sys."+Constants.SHAREKEY_SETTING_SLEEP_SCORE_DATE,dateyyyyMMddHHmmss);\r
+//    SharPreferenceUtil.setPrefStringPublic(context,Constants.SHAREKEY_SETTING_SLEEP_SCORE_DATE,dateyyyyMMddHHmmss);\r
   }\r
 \r
 \r
   public static void setSleepScore(Context context,int score){\r
-    SharPreferenceUtil.setPrefIntPublic(context,Constants.SHAREKEY_SETTING_SLEEP_SCORE,score);\r
+//    SharPreferenceUtil.setPrefIntPublic(context,Constants.SHAREKEY_SETTING_SLEEP_SCORE,score);\r
+    Util.setSystemProperties("persist.sys."+Constants.SHAREKEY_SETTING_SLEEP_SCORE,score);\r
+\r
   }\r
 \r
   /**\r
index 8a32cf2..d13138d 100644 (file)
@@ -322,6 +322,18 @@ public interface Constants {
 /**\r
  *   PreferenceManager.getDefaultSharedPreferences(context) , package name "com.enqualcomm.support"\r
  */\r
+\r
+  /***\r
+   * 心率血压血氧校准值\r
+   * String 变量,用 "," 分割的 4个数据 格式为【ppg_adj,bph_adj,bpl_adj,spo2_adj】\r
+   * 例如\r
+   * 心率偏差ppg_adj=2,\r
+   * 高压偏差bph_adj=-2,\r
+   * 低压偏差bpl_adj=-3,\r
+   * 血氧偏差spo2_adj=5\r
+   * 则赋值 2,-2,-3,5\r
+   */\r
+  public static String SHAREKEY_SETTING_PPG_ECG_ADJUST = "PpgEcgAdjust";\r
   /**\r
    * 睡眠分数 , int\r
    */\r
index 249f266..983af95 100644 (file)
@@ -180,16 +180,21 @@ public class CoreService extends Service {
                 runtime.getLocationInstance().setWorkingMod(EMERGNECY_MOD);\r
                 runtime.setPpgTestCycle(1);\r
                 setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
+\r
                 setHeartRateDetectAlarm(runtime.getPpgTestCycle());\r
+\r
+\r
                 setEmegencyLocationSTOPAlarm(5);\r
             }else if (ACTION_LOCAL_SOS_ACTION.endsWith(param1Intent.getAction())){\r
 \r
 \r
-                VibrateUtil.getInstance(runtime.getContextProxy().context).VibrateOnOnce(true);\r
+                VibrateUtil.getInstance(runtime.getContextProxy().context).VibrateOn(true);\r
 //               if( param1Intent.getIntExtra("type", 1) == 1) {\r
+                boolean needHRSTestOnSOS = Util.getSystemProperties("persist.sys.needHRSOnSOS","false").equals("true");\r
+                if(needHRSTestOnSOS) {\r
                     setHeartRateDetectAlarm(runtime.getPpgTestCycle());\r
                     HeartRateManager.triggerPPGtest();\r
-\r
+                }\r
                     runtime.setAlarmType(Runtime.AlarmType.ALARM_SOS);\r
                     //trigger AP10 报警定位\r
 //                   CoreService.this.locationClient.triggerSOSLocationProcess();\r
@@ -198,10 +203,12 @@ public class CoreService extends Service {
                     //开启紧急定位模式,GPS 优先1分钟一次定位,持续5分钟\r
                     runtime.getLocationInstance().setWorkingMod(EMERGNECY_MOD);\r
                     setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
-                    //SOS模式,心率测试1分钟一次,持续5分钟\r
-                    runtime.setPpgTestCycle(1);\r
-                    setHeartRateDetectAlarm(runtime.getPpgTestCycle());\r
 \r
+                    //SOS模式,心率测试1分钟一次,持续5分钟\r
+                    if(needHRSTestOnSOS) {\r
+                        runtime.setPpgTestCycle(1);\r
+                        setHeartRateDetectAlarm(runtime.getPpgTestCycle());\r
+                    }\r
                     //设置5分钟后结束紧急定位模式\r
                    setEmegencyLocationSTOPAlarm(5);\r
 \r
@@ -695,6 +702,7 @@ public class CoreService extends Service {
                     //平均 每分钟活动数 小于参考久坐计步值,表示久坐\r
                     ICLogger.i("SitCheck 平均 每分钟活动数 小于参考久坐计步值,表示久坐");\r
                     runtime.getContextProxy().sendBroadcastSitLongAlarm(); //广播久坐消息\r
+                    VibrateUtil.getInstance(this).VibrateOn(true);\r
                 }else{\r
                     //只要 平均每分钟活动数大于参考值,则重置 lastCheckSitTime 以及 lastSitCheckStepCount\r
                     ICLogger.i("SitCheck 平均每分钟活动数大于参考值,则重置 lastCheckSitTime 以及 lastSitCheckStepCount");\r
index 3874da7..a7c8e74 100644 (file)
@@ -238,7 +238,36 @@ public class Util {
     }\r
     return str;\r
   }\r
+  public static String getSystemProperties(String prop,String defaultValue){\r
 \r
+    String str =defaultValue;\r
+    Class clazz = null;\r
+    try {\r
+      clazz = Class.forName("android.os.SystemProperties");\r
+      Method get=clazz.getMethod("get", new Class[] { String.class });\r
+      str = (String)get.invoke(clazz, new Object[] { prop });\r
+    } catch (Exception e) {\r
+      e.printStackTrace();\r
+    }\r
+    return str;\r
+  }\r
+  public static int getSystemPropertiesInt(String prop,int defaultValue){\r
+\r
+    int ret=defaultValue;\r
+    String str ="";\r
+    Class clazz = null;\r
+    try {\r
+      clazz = Class.forName("android.os.SystemProperties");\r
+      Method get=clazz.getMethod("get", new Class[] { String.class });\r
+      str = (String)get.invoke(clazz, new Object[] { prop });\r
+      if (str!=null && str.trim().length()>0 && isNumeric(str)){\r
+        ret=Integer.parseInt(str);\r
+      }\r
+    } catch (Exception e) {\r
+      e.printStackTrace();\r
+    }\r
+    return ret;\r
+  }\r
   public static boolean isNumeric(String str){\r
     Pattern pattern = Pattern.compile("[0-9]*");\r
     Matcher isNum = pattern.matcher(str);\r
@@ -247,7 +276,24 @@ public class Util {
     }\r
     return true;\r
   }\r
+  static public void setSystemProperties(String key, int defaultValue) {\r
+\r
+    String value = String.valueOf(defaultValue);\r
 \r
+    try {\r
+\r
+      Class<?> c = Class.forName("android.os.SystemProperties");\r
+\r
+      Method set = c.getMethod("set", String.class, String.class );\r
+\r
+      set.invoke(c, key, value );\r
+\r
+    } catch (Exception e) {\r
+\r
+      e.printStackTrace();\r
+\r
+    }\r
+  }\r
   static public void setSystemProperties(String key, String defaultValue) {\r
 \r
     String value = defaultValue;\r
diff --git a/app/src/main/java/com/enqualcomm/support/utils/sysProperties.java b/app/src/main/java/com/enqualcomm/support/utils/sysProperties.java
new file mode 100644 (file)
index 0000000..8221ecd
--- /dev/null
@@ -0,0 +1,56 @@
+package com.enqualcomm.support.utils;\r
+\r
+\r
+import java.lang.reflect.InvocationTargetException;\r
+import java.lang.reflect.Method;\r
+\r
+public class sysProperties {\r
+\r
+    private static Method sysPropGet;\r
+    private static Method sysPropSet;\r
+\r
+    private sysProperties() {\r
+    }\r
+\r
+    static {\r
+        try {\r
+            Class  S = Class.forName("android.os.SystemProperties");\r
+            Method M[] = S.getMethods();\r
+            for (Method m : M) {\r
+                String n = m.getName();\r
+                if (n.equals("get")) {\r
+                    sysPropGet = m;\r
+                } else if (n.equals("set")) {\r
+                    sysPropSet = m;\r
+                }\r
+            }\r
+        } catch (ClassNotFoundException e) {\r
+            e.printStackTrace();\r
+        }\r
+    }\r
+\r
+    public static String get(String name, String default_value) {\r
+        try {\r
+            return (String) sysPropGet.invoke(null, name, default_value);\r
+        } catch (IllegalArgumentException e) {\r
+            e.printStackTrace();\r
+        } catch (IllegalAccessException e) {\r
+            e.printStackTrace();\r
+        } catch (InvocationTargetException e) {\r
+            e.printStackTrace();\r
+        }\r
+        return default_value;\r
+    }\r
+\r
+    public static void set(String name, String value) {\r
+        try {\r
+            sysPropSet.invoke(null, name, value);\r
+        } catch (IllegalArgumentException e) {\r
+            e.printStackTrace();\r
+        } catch (IllegalAccessException e) {\r
+            e.printStackTrace();\r
+        } catch (InvocationTargetException e) {\r
+            e.printStackTrace();\r
+        }\r
+    }\r
+}
\ No newline at end of file
index 771662a..98cf749 100644 (file)
@@ -1733,9 +1733,13 @@ public class protocol_ic {
             Config.setBPHAdjust(mRuntime.getContextProxy().context,bph_adjust);\r
             Config.setBPLAdjust(mRuntime.getContextProxy().context,bpl_adjust);\r
             Config.setSPo2Adjust(mRuntime.getContextProxy().context,spo2_adjust);\r
+            String ShareAdjValue=new StringBuilder().append(ppg_adjust).append(CMDSPLIT)\r
+                    .append(bph_adjust).append(CMDSPLIT)\r
+                    .append(bpl_adjust).append(CMDSPLIT)\r
+                    .append(spo2_adjust).append(CMDSPLIT).toString();\r
+            Config.setPPG_ECG_adjustValue(ShareAdjValue);\r
+            ICLogger.i("Handle BPX1 IMEI "+imei+",index "+index+", BPH "+strBPH+", BPL "+strBPL+", PPG "+ strXL +", Sp02 "+ strSpO2 + " , Shared Adjust Value "+ ShareAdjValue);\r
 \r
-\r
-            ICLogger.i("Handle BPX1 IMEI "+imei+",index "+index+", BPH "+strBPH+", BPL "+strBPL+", PPG "+ strXL +", Sp02 "+ strSpO2);\r
         }else{\r
             ICLogger.i("BPX1 format error!");\r
         }\r
@@ -2063,7 +2067,6 @@ public class protocol_ic {
  * #:结束符\r
  */\r
         String sb=new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APSL))\r
-                .append(CMDSPLIT)\r
                 .append(CMDSPLIT).append(date)\r
                 .append(CMDSPLIT).append(deepsleep)\r
                 .append(CMDSPLIT).append(lightsleep)\r
index c77a6fb..3d5daf1 100644 (file)
@@ -1,2 +1,2 @@
-#Thu Aug 06 17:23:57 CST 2020\r
-VERSION_CODE=479\r
+#Sat Aug 08 12:21:06 CST 2020\r
+VERSION_CODE=484\r