修复时间变化后,闹铃失效问题!
authorsnicker <snickersun@163.com>
Tue, 31 Mar 2020 03:30:02 +0000 (11:30 +0800)
committersnicker <snickersun@163.com>
Tue, 31 Mar 2020 03:30:02 +0000 (11:30 +0800)
修改 LocationCycle 默认值为 900秒.

app/src/main/java/com/enqualcomm/support/Config.java
app/src/main/java/com/enqualcomm/support/CoreService.java
app/src/main/java/com/enqualcomm/support/service/SilentManager.java

index fd339d1..e5a6c3c 100644 (file)
@@ -145,7 +145,6 @@ public class Config {
   final static String KeyHeartBeatCycle="ServerHeartBeatCycle";\r
 \r
 \r
-\r
   final static String KeyLogFtpServer="FtpServerHost";\r
   final static String KeyLogFtpUser="FtpServerUser";\r
   final static String KeyLogFtpPWD="FtpServerPWD";\r
@@ -295,7 +294,7 @@ public class Config {
   }\r
 \r
   public static int getLocationCycle(Context context){\r
-    return SharPreferenceUtil.getPrefInt(context,KeyLocationCycle,15);\r
+    return SharPreferenceUtil.getPrefInt(context,KeyLocationCycle,900);\r
   }\r
 \r
   public static void setLocationMode(Context context,int mode){\r
index c845ea1..fc25521 100644 (file)
@@ -150,7 +150,7 @@ public class CoreService extends Service {
         }\r
     };\r
 \r
-    private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {\r
+    private BroadcastReceiver TimeChangeBroadcastReceiver = new BroadcastReceiver() {\r
         public void onReceive(Context param1Context, Intent param1Intent) {\r
             StringBuilder stringBuilder2 = new StringBuilder();\r
             stringBuilder2.append("broadcastReceiver  alarmCycle action==");\r
@@ -160,14 +160,17 @@ public class CoreService extends Service {
             stringBuilder1.append("时间变化");\r
             stringBuilder1.append(param1Intent.getAction()+stringBuilder2.toString());\r
             ICLogger.i(stringBuilder1.toString());\r
-            CoreService.this.setSleepAlarm();\r
-            CoreService.this.setWakeAlarm();\r
-            CoreService.this.setHeartAlarm();\r
-            CoreService.this.setHeartRateDetectAlarm(runtime.getPpgTestCycle());\r
-            CoreService.this.setWeatherAlarm();\r
-            CoreService.this.setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
-            if (CoreService.this.cmcm_call_eiot_into_powersave_mode() == 0)\r
-                AlarmWakeUp.isNeedWakeUpAlarm(CoreService.this.runtime);\r
+\r
+            //只有需要确定绝对时间点启动的Alarm需要重置,相对时间点的Alarm不需要重置。防止永远不能正常登陆。\r
+            setSleepAlarm();\r
+            setWakeAlarm();\r
+//            setHeartAlarm();\r
+//           setHeartRateDetectAlarm(runtime.getPpgTestCycle());\r
+            setWeatherAlarm();\r
+            runtime.getContextProxy().sendBroadcast("com.enqualcomm.support.ACTION_ALARM_ALARM_CHANGE",runtime); //更新Alarm\r
+           // setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
+            if (cmcm_call_eiot_into_powersave_mode() == 0)\r
+                AlarmWakeUp.isNeedWakeUpAlarm(runtime);\r
         }\r
     };\r
     private BroadcastReceiver broadcastSOSReceiver = new BroadcastReceiver() {\r
@@ -362,7 +365,7 @@ public class CoreService extends Service {
         ICLogger.i("getInvokeHandlerServiceChain");\r
         SendChatMessage sendChatMessage = new SendChatMessage();\r
         HeartRateManager heartRateManager= new HeartRateManager(this.runtime,this.connection);\r
-        SilentManager silentManager = new SilentManager();\r
+        SilentManager silentManager = SilentManager.getInstance();// new SilentManager();\r
         sendChatMessage.setNext(heartRateManager);\r
         heartRateManager.setNext(silentManager);\r
         return sendChatMessage;\r
@@ -541,9 +544,9 @@ public class CoreService extends Service {
 \r
         //注册接收  时间和tiimezone 变更消息\r
         IntentFilter intentFilter = new IntentFilter();\r
-//        intentFilter.addAction("android.intent.action.TIME_SET");\r
+        intentFilter.addAction("android.intent.action.TIME_SET");\r
         intentFilter.addAction("android.intent.action.TIMEZONE_CHANGED");\r
-        registerReceiver(this.broadcastReceiver, intentFilter);\r
+        registerReceiver(this.TimeChangeBroadcastReceiver, intentFilter);\r
 \r
         //注册接收 screen on/off 消息\r
         intentFilter = new IntentFilter();\r
@@ -956,7 +959,7 @@ public class CoreService extends Service {
         this.invokeHandlerServiceChain.processDetach(this.connection, this.runtime);\r
         this.locationClient.deinit();\r
         this.connection.close();\r
-        unregisterReceiver(this.broadcastReceiver);\r
+        unregisterReceiver(this.TimeChangeBroadcastReceiver);\r
         unregisterReceiver(this.screenOnReceiver);\r
         unregisterReceiver(this.AtCallbackBroadcastReceiver);\r
         batteryUtil.unregisterBroadReceiver();\r
index a0a7928..fe70d79 100644 (file)
@@ -70,6 +70,15 @@ public class SilentManager extends AbstractInvokeHandlerService {
   private int mStheartRateInterval;\r
   private int mTodayWeek;\r
   private boolean mValue_isSilence;\r
+\r
+\r
+  private static SilentManager mSilentManger=null;\r
+\r
+  public static SilentManager getInstance(){\r
+    if (mSilentManger==null)\r
+      mSilentManger=new SilentManager();\r
+    return mSilentManger;\r
+  }\r
   private PhoneStateListener phoneStateListener = new PhoneStateListener() {\r
     public void onCallStateChanged(int var1, String var2) {\r
       super.onCallStateChanged(var1, var2);\r