}
//设置5分钟后结束紧急定位模式
setEmegencyLocationSTOPAlarm(5);
-
-
- if (Config.SOSNoNeedDial == false) {
+ if (!Config.SOSNoNeedDial) {
//50ms后开始拨打电话
mHandler.postDelayed(mTriggerSOSCALLThread, 500);
}
ICLogger.i("Reset Count At 00:00 ");
//update stepCount and broadcast before reset
this.locationClient.updateStepCount(); //先记录下最后一次步数
- runtime.getContextProxy().brodcastResetStepCount(runtime.getTotalStepCount());
+ runtime.getContextProxy().broadcastResetStepCount(runtime.getTotalStepCount());
updateSleepDate();//更新睡眠信息
//更新 运动控制的上次步数 然后再resetstecount
int category = bundle.getInt("category", -1);\r
ICLogger.i(" msg.what 101 category=" + category + ", filepath=" + filepath + ",number=" + number);\r
\r
-\r
if (filepath == null || number == null || category == -1)\r
return true;\r
\r
import com.enqualcomm.support.Config;
import com.enqualcomm.support.CoreService;
-import com.enqualcomm.support.provider.ICContentProvider;
import com.enqualcomm.support.bean.Alarm;
import com.enqualcomm.support.bean.Antioff;
import com.enqualcomm.support.bean.EventLooperHandlerThread;
import com.enqualcomm.support.bean.Runtime;
import com.enqualcomm.support.bean.Silent;
import com.enqualcomm.support.bean.StheartRate;
+import com.enqualcomm.support.provider.ICContentProvider;
import com.enqualcomm.support.service.base.AbstractInvokeHandlerService;
import com.enqualcomm.support.utils.AlarmHelper;
import com.enqualcomm.support.utils.Connection;
for (int var8 = 1; var8 < var7; ++var8) {
char var9 = var6[var8];
- this.mAlarmManager.cancel(this.getPendingIntent(var10, var4, var5, var11, var9 - 47));
+ this.mAlarmManager.cancel(this.getPendingIntent(var10, var4, var5, var11, var9 - 47, 0, false));
}
}
String var7 = var3.noticeCategory;
String var8 = var3.noticeFrequency;
String var10 = var3.noticeContent;
- this.mAlarmManager.cancel(this.getPendingIntent(var4, var9, var5, var6, var7, var8, var10));
+ this.mAlarmManager.cancel(this.getPendingIntent(var4, var9, var5, var6, var7, var8, var10, false));
}
}
- private PendingIntent getPendingIntent(String var1, String var2, String var3, String var4, int var5) {
- StringBuilder var6 = new StringBuilder("alarm:");
- var6.append(var1);
- var6.append(",");
- var6.append(var2);
- var6.append(",");
- var6.append(var3);
- var6.append(",");
- var6.append(var4);
- var6.append(",");
- var6.append(var5);
- var2 = var6.toString();
+ private PendingIntent getPendingIntent(String args, boolean repeat) {
Intent intent = new Intent(this.mContext, CoreService.class);
intent.setAction(ACTION_CARE_ALARM);
- intent.setData(Uri.parse(var2));
+ intent.putExtra("IS_REPEAT", repeat);
+ intent.setData(Uri.parse(args));
return PendingIntent.getService(this.mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
- private PendingIntent getPendingIntent(String var1, String var2, String var3, String var4, String var5, String var6, String var7) {
+ private PendingIntent getPendingIntent(String time,
+ String week,
+ String ring,
+ String name,
+ int dayOfWeek, long tmpTimeInMillis, boolean repeat) {
+ StringBuilder args = new StringBuilder("alarm:");
+ args.append(time);
+ args.append(",");
+ args.append(week);
+ args.append(",");
+ args.append(ring);
+ args.append(",");
+ args.append(name);
+ args.append(",");
+ args.append(dayOfWeek);
+ week = args.toString();
+ Intent intent = new Intent(this.mContext, CoreService.class);
+ intent.setAction(ACTION_CARE_ALARM);
+ intent.putExtra("IS_REPEAT", repeat);
+ intent.putExtra("TIME_STAMP", tmpTimeInMillis);
+ intent.setData(Uri.parse(week));
+ return PendingIntent.getService(this.mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
+ }
+
+ private PendingIntent getPendingIntent(String var1, String var2,
+ String var3, String var4, String var5, String var6, String var7
+ , boolean isRepeat) {
StringBuilder var8 = new StringBuilder("notice:");
var8.append(var1);
var8.append(",");
var8.append(",");
var8.append(var7);
var1 = var8.toString();
- Intent var9 = new Intent(this.mContext, CoreService.class);
- var9.setAction("com.enqualcomm.support.ACTION_NOTICE_ALARM");
- var9.setData(Uri.parse(var1));
- return PendingIntent.getService(this.mContext, 0, var9, PendingIntent.FLAG_UPDATE_CURRENT);
+ Intent intent = new Intent(this.mContext, CoreService.class);
+ intent.putExtra("IS_REPEAT", isRepeat);
+ intent.setAction("com.enqualcomm.support.ACTION_NOTICE_ALARM");
+ intent.setData(Uri.parse(var1));
+ return PendingIntent.getService(this.mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
private void getSilentListStartAndEndTime() {
while (itAlarm.hasNext()) {
Alarm alarm = (Alarm) itAlarm.next();
+ ICLogger.d("alarm == > " + alarm);
if ("ON".equals(alarm.status)) {
int hour = Integer.parseInt(alarm.time.substring(2, 4));
int minute = Integer.parseInt(alarm.time.substring(5, 7));
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, minute);
-
+ calendar.set(Calendar.SECOND, 0);
+ alarm.week = alarm.week.replace("W", "");
char[] weeklist = alarm.week.toCharArray();
int weeklistlen = weeklist.length;
ICLogger.i("repeat = " + alarm.week + ", list size = " + weeklistlen);
if (weeklistlen > 1) {
//如果week大于0 则证明有循环,没有循环就证明只是一次的闹铃。
- for (int i = 1; i < weeklistlen; i++) {
-
+ for (int i = 0; i < weeklistlen; i++) {
long tmpTimeInMillis;
int dayofweek = weeklist[i] - 47;
calendar.set(Calendar.DAY_OF_WEEK, dayofweek);
}
Date date = new Date(tmpTimeInMillis);
ICLogger.i("set date " + date.toLocaleString());
- PendingIntent pendingIntent = this.getPendingIntent(alarm.time, alarm.week, alarm.ring, alarm.name, dayofweek);
+ PendingIntent pendingIntent = this.getPendingIntent(alarm.time,
+ alarm.week, alarm.ring, alarm.name, dayofweek, tmpTimeInMillis, true);
AlarmHelper.setAlarm(this.mAlarmManager, tmpTimeInMillis, pendingIntent);
}
} else {
ICLogger.i("set date " + date.toLocaleString());
- PendingIntent pendingIntent = this.getPendingIntent(alarm.time, alarm.week, alarm.ring, alarm.name, wek);
+ PendingIntent pendingIntent = this.getPendingIntent(alarm.time,
+ alarm.week, alarm.ring, alarm.name, wek, tmpTimeInMillis, false);
AlarmHelper.setAlarmOnce(this.mAlarmManager, tmpTimeInMillis, pendingIntent);
}
-
}
}
}
var10.set(Calendar.DATE, Integer.parseInt(var14));
var10.set(Calendar.HOUR_OF_DAY, Integer.parseInt(var15));
var10.set(Calendar.MINUTE, Integer.parseInt(var16));
- long var17 = var10.getTimeInMillis();
- if (var17 >= var11) {
- PendingIntent var21 = this.getPendingIntent(var3, var4, var5, var6, var7, var8, var9);
- AlarmHelper.setAlarm(this.mAlarmManager, var17, var21);
+ long targetTime = var10.getTimeInMillis();
+ if (targetTime >= var11) {
+ PendingIntent targetIntent = this.getPendingIntent(var3, var4, var5,
+ var6, var7, var8, var9, true);
+ AlarmHelper.setAlarm(this.mAlarmManager, targetTime, targetIntent);
}
}
}
}
@Override
- public boolean onUserRequest(Intent var1, Connection var2, Runtime runtime) {
- String action = var1.getAction();
+ public boolean onUserRequest(Intent intent, Connection var2, Runtime runtime) {
+ String action = intent.getAction();
+ ICLogger.d("action == > " + action);
+ //如果是循环的,那么再设置下一次
if (ACTION_CARE_ALARM.equals(action)) {
- String alarmTime = var1.getDataString(); //alarm:ST00.43,W,CON,闹铃,2
+ String alarmTime = intent.getDataString(); //alarm:ST00.43,W,CON,闹铃,2
+ ICLogger.d("alarmTime == > " + alarmTime);
String currentTime = TimeUtil.getSystemTime();
alarmTime.substring(6).split("\\.");
int alarmTime_minutes = Integer.parseInt(alarmTime.substring(6).split("\\.")[1].substring(0, 2));
int currentTime_hour = Integer.parseInt(currentTimeArray[0]);
int currentTime_minutes = Integer.parseInt(currentTimeArray[1]);
ICLogger.i("alarm time[" + alarmTime_hour + ":" + alarmTime_minutes + "], current time[" + currentTime_hour + ":" + currentTime_minutes + "]");
+ boolean isRepeat = intent.getBooleanExtra("IS_REPEAT", false);
+ ICLogger.d("isRepeat == > " + isRepeat);
+ //设置下一周期的时间
+ if (isRepeat) {
+ long timeStamp = intent.getLongExtra("TIME_STAMP", 0L);
+ PendingIntent pendingIntent = this.getPendingIntent(alarmTime, true);
+ AlarmHelper.setNextWeekAlarm(this.mAlarmManager, timeStamp, pendingIntent);
+ }
if (alarmTime_hour != currentTime_hour || alarmTime_minutes != currentTime_minutes) {
return false;
}
if (this.isIdle(this.mContext)) {
try {
- Intent intent = new Intent("com.enqualcomm.icare.ALARM", Uri.parse(alarmTime));
- intent.putExtra("closeAlarm", 0);
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- this.mContext.startActivity(intent);
+ Intent targetIntent = new Intent("com.enqualcomm.icare.ALARM", Uri.parse(alarmTime));
+ targetIntent.putExtra("closeAlarm", 0);
+ targetIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ this.mContext.startActivity(targetIntent);
} catch (Exception e) {
e.printStackTrace();
ICLogger.e(e.getMessage(), e);
}
}
} else if ("com.enqualcomm.support.ACTION_NOTICE_ALARM".equals(action)) {
- String alarmTime = var1.getDataString();
+ String alarmTime = intent.getDataString();
if (this.isIdle(this.mContext)) {
try {
- var1 = new Intent("com.enqualcomm.icare.NOTICE", Uri.parse(alarmTime));
- var1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- this.mContext.startActivity(var1);
+ intent = new Intent("com.enqualcomm.icare.NOTICE", Uri.parse(alarmTime));
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ this.mContext.startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
ICLogger.e(e.getMessage(), e);
import android.app.Activity;\r
import android.content.ComponentName;\r
import android.content.Intent;\r
-import android.support.v7.app.AppCompatActivity;\r
import android.os.Bundle;\r
import android.view.View;\r
import android.widget.Button;\r
\r
import com.enqualcomm.support.utils.SimSignalUtil;\r
import com.enqualcomm.support.utils.Util;\r
-import com.ic.protocols.protocol_mqtt;\r
//import com.ic.protocols.protocol_mqtt_client;\r
\r
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;\r
\r
Intent intent=new Intent();\r
intent.putExtra("smsCmd","#setlocation#=1,30#");\r
- CoreService.getInstance().runtime.getContextProxy().sendBrodcast("com.enqualcomm.support.SMSCMD",intent);\r
+ CoreService.getInstance().runtime.getContextProxy().sendBroadcast("com.enqualcomm.support.SMSCMD",intent);\r
Util.ShowToast(CoreService.getInstance().runtime,"设置模式1 , 间隔900秒定位。");\r
}\r
});\r
public void onClick(View view) {\r
Intent intent=new Intent();\r
intent.putExtra("smsCmd","#setlocation#=3,30#");\r
- CoreService.getInstance().runtime.getContextProxy().sendBrodcast("com.enqualcomm.support.SMSCMD",intent);\r
+ CoreService.getInstance().runtime.getContextProxy().sendBroadcast("com.enqualcomm.support.SMSCMD",intent);\r
Util.ShowToast(CoreService.getInstance().runtime,"设置模式3 , 间隔60秒定位。");\r
\r
// mqttClient.attemptConnectMqtt(protocol_mqtt.defaultServerIP,"IC_H88_1063",60);\r
public void onClick(View view) {\r
Intent intent=new Intent();\r
intent.putExtra("smsCmd","#setlocation#=8,300#");\r
- CoreService.getInstance().runtime.getContextProxy().sendBrodcast("com.enqualcomm.support.SMSCMD",intent);\r
+ CoreService.getInstance().runtime.getContextProxy().sendBroadcast("com.enqualcomm.support.SMSCMD",intent);\r
Util.ShowToast(CoreService.getInstance().runtime,"设置模式8, 间隔300秒定位。");\r
\r
\r
public void onClick(View view) {\r
Intent intent=new Intent();\r
intent.putExtra("smsCmd","#logctl#=upload,SDLogInfo:Android/ic");\r
- CoreService.getInstance().runtime.getContextProxy().sendBrodcast("com.enqualcomm.support.SMSCMD",intent);\r
+ CoreService.getInstance().runtime.getContextProxy().sendBroadcast("com.enqualcomm.support.SMSCMD",intent);\r
}\r
});\r
\r
if(usbstat) {\r
Intent intent=new Intent();\r
intent.putExtra("smsCmd", "#USB#=mtp");\r
- CoreService.getInstance().runtime.getContextProxy().sendBrodcast("com.enqualcomm.support.SMSCMD",intent);\r
+ CoreService.getInstance().runtime.getContextProxy().sendBroadcast("com.enqualcomm.support.SMSCMD",intent);\r
Util.ShowToast(CoreService.getInstance().runtime,"Enable MTP");\r
}else{\r
Intent intent=new Intent();\r
intent.putExtra("smsCmd", "#USB#=none");\r
- CoreService.getInstance().runtime.getContextProxy().sendBrodcast("com.enqualcomm.support.SMSCMD",intent);\r
+ CoreService.getInstance().runtime.getContextProxy().sendBroadcast("com.enqualcomm.support.SMSCMD",intent);\r
Util.ShowToast(CoreService.getInstance().runtime,"Diable MTP");\r
}\r
\r
}\r
\r
//设置闹铃\r
- public static void setAlarm(AlarmManager paramAlarmManager, long triggerAtMillis, long intervalMillis, PendingIntent paramPendingIntent) {\r
-\r
- paramAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, triggerAtMillis, intervalMillis, paramPendingIntent);\r
-\r
-// try {\r
-// setImpl.invoke(paramAlarmManager, new Object[] { Integer.valueOf(0), Long.valueOf(triggerAtMillis), Long.valueOf(0L), Long.valueOf(intervalMillis), paramPendingIntent, null });\r
-//\r
-// } catch (Exception exception) {\r
-//// useApi19 = false;\r
-//\r
-// paramAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, triggerAtMillis, intervalMillis, paramPendingIntent);\r
-// exception.printStackTrace();\r
-// }\r
-\r
- }\r
-\r
- //以周为单位设置循环闹铃\r
public static void setAlarm(AlarmManager paramAlarmManager, long triggerAtMillis, PendingIntent paramPendingIntent) {\r
- ICLogger.i("setAlarm triggerAtMillis " + triggerAtMillis);\r
- setAlarm(paramAlarmManager, triggerAtMillis, ONE_WEEK, paramPendingIntent);\r
+ //循环闹钟\r
+ paramAlarmManager.set(AlarmManager.RTC_WAKEUP, triggerAtMillis, paramPendingIntent);\r
+ //paramAlarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, triggerAtMillis, intervalMillis, paramPendingIntent);\r
}\r
\r
public static void setAlarmOnce(AlarmManager paramAlarmManager, long triggerAtMillis, PendingIntent paramPendingIntent) {\r
ICLogger.i("setAlarmOnce triggerAtMillis " + triggerAtMillis);\r
- setAlarm(paramAlarmManager, triggerAtMillis, 0, paramPendingIntent);\r
+ paramAlarmManager.set(AlarmManager.RTC_WAKEUP, triggerAtMillis, paramPendingIntent);\r
+ // setAlarm(paramAlarmManager, triggerAtMillis, 0, paramPendingIntent);\r
}\r
\r
public static void setCleanStepCountAlarm(Context context, int hour, int minutes, String paramString) {\r
alarmManager.cancel(pendingIntent);\r
alarmManager.setExact(AlarmManager.RTC_WAKEUP, l1, pendingIntent);\r
}\r
+\r
+ public static void setNextWeekAlarm(AlarmManager mAlarmManager, long timeStamp, PendingIntent pendingIntent) {\r
+ //周期为下一周\r
+ timeStamp += ONE_WEEK;\r
+ setAlarm(mAlarmManager, timeStamp, pendingIntent);\r
+ }\r
}\r
\r
}
- private PendingIntent getPendingIntent(String paramString1, String paramString2, String paramString3, String name, int paramInt) {
+ private PendingIntent getPendingIntent(String paramString1, String paramString2,
+ String paramString3, String name, int paramInt, boolean isRepeat) {
StringBuilder stringBuilder = new StringBuilder("alarm:");
stringBuilder.append(paramString1);
stringBuilder.append(",");
stringBuilder.append(",");
stringBuilder.append(paramInt);
Intent intent = new Intent("com.enqualcomm.icare.ALARM", Uri.parse(stringBuilder.toString()));
+ intent.putExtra("IS_REPEAT", isRepeat);
return PendingIntent.getActivity(this.context, 0, intent, FLAG_UPDATE_CURRENT);
}
- private PendingIntent getPendingIntent(String noticeTime, String noticeName, String noticeNumber, String noticeID, String noticeCategory, String noticeFrequency, String noticeContent) {
+ private PendingIntent getPendingIntent(String noticeTime, String noticeName,
+ String noticeNumber, String noticeID, String noticeCategory,
+ String noticeFrequency, String noticeContent, boolean isRepeat) {
StringBuilder stringBuilder = new StringBuilder("notice:");
stringBuilder.append(noticeTime);
stringBuilder.append(",");
stringBuilder.append(",");
stringBuilder.append(noticeContent);
Intent intent = new Intent("com.enqualcomm.icare.NOTICE", Uri.parse(stringBuilder.toString()));
-
+ intent.putExtra("IS_REPEAT", isRepeat);
return PendingIntent.getActivity(this.context, 0, intent, FLAG_UPDATE_CURRENT);
}
long l1 = calendar2.getTimeInMillis();
if (l1 <= l)
l1 += ONE_WEEK;
- PendingIntent pendingIntent = getPendingIntent(str2, str1, str3, str4, c);
+ PendingIntent pendingIntent = getPendingIntent(str2, str1, str3, str4, c, true);
AlarmHelper.setAlarm(this.alarmManager, l1, pendingIntent);
b++;
c = '\002';
calendar1.set(Calendar.MINUTE, Integer.parseInt(minute));
long l1 = calendar1.getTimeInMillis();
if (l1 > l) {
- PendingIntent pendingIntent = getPendingIntent(str1, str2, str3, str4, str5, str6, str7);
+ PendingIntent pendingIntent = getPendingIntent(str1, str2, str3, str4,
+ str5, str6, str7, true);
AlarmHelper.setAlarm(this.alarmManager, l1, pendingIntent);
}
}
byte b = 1;
while (b < i) {
c = arrayOfChar[b];
- this.alarmManager.cancel(getPendingIntent(str1, str2, str3, str4, c - '/'));
+ this.alarmManager.cancel(getPendingIntent(str1, str2, str3, str4, c - '/', false));
b++;
c = '\001';
}
l1 = l2;
if (l2 <= l)
l1 = l2 + ONE_WEEK;
- PendingIntent pendingIntent = getPendingIntent(alarm.time, alarm.week, alarm.ring, alarm.name, c);
+ PendingIntent pendingIntent = getPendingIntent(alarm.time, alarm.week, alarm.ring, alarm.name, c, true);
AlarmHelper.setAlarm(this.alarmManager, l1, pendingIntent);
j++;
continue;
String str5 = cursor.getString(5);
String str6 = cursor.getString(6);
String str7 = cursor.getString(6);
- this.alarmManager.cancel(getPendingIntent(str1, str2, str3, str4, str5, str6, str7));
+ this.alarmManager.cancel(getPendingIntent(str1, str2, str3, str4, str5, str6, str7, false));
}
cursor.close();
}
calendar.set(Calendar.MINUTE, Integer.parseInt(str12));
long l1 = calendar.getTimeInMillis();
if (l1 >= l) {
- PendingIntent pendingIntent = getPendingIntent(str1, str2, str3, str4, str5, str6, str7);
+ PendingIntent pendingIntent = getPendingIntent(str1, str2, str3, str4, str5, str6, str7, true);
AlarmHelper.setAlarm(this.alarmManager, l1, pendingIntent);
}
} catch (Exception e) {
private static final String PED_TOTAL_KEY = "PED_TOTAL";
private static final String PED_FINISH_ACTION = "com.ic.action.PED_FINISH";
- public void brodcastResetStepCount(int StepCount) {
+ public void broadcastResetStepCount(int StepCount) {
Intent intent = new Intent();
intent.putExtra(PED_TOTAL_KEY, StepCount);
intent.setAction(PED_FINISH_ACTION);
this.context.sendBroadcast(intent);
}
- public void sendBrodcast(String action, Intent intent) {
+ public void sendBroadcast(String action, Intent intent) {
intent.setAction(action);
ICLogger.i("send broadcast action " + action);
this.context.sendBroadcast(intent);