-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":946,"versionName":"2109041740","enabled":true,"outputFile":"ICSer_V946_2109041740_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V946_2109041740_release.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":947,"versionName":"2109081949","enabled":true,"outputFile":"ICSer_V947_2109081949_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V947_2109081949_release.apk","properties":{}}]
\ No newline at end of file
<action android:name="com.ic.mqtt.startsrv" />
</intent-filter>
</service>
+
+ <receiver android:name=".AlarmReceiver">
+ <intent-filter>
+ <action android:name="com.ic.alarm.action.ALARM_CLOCK" />
+ </intent-filter>
+ </receiver>
+
<service android:name=".CoreService"> <!-- 协议通讯服务 -->
<intent-filter>
<action android:name="com.enqualcomm.support.startsrv" />
--- /dev/null
+package com.enqualcomm.support;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+
+import com.enqualcomm.support.service.AlarmManagerUtil;
+import com.enqualcomm.support.service.SilentManager;
+import com.enqualcomm.support.utils.ICLogger;
+
+public class AlarmReceiver extends BroadcastReceiver {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String msg = intent.getStringExtra("msg");
+ String id = intent.getStringExtra("id");
+ long intervalMillis = intent.getLongExtra("intervalMillis", 0);
+ if (intervalMillis != 0) {
+ AlarmManagerUtil.setAlarmTime(context,
+ System.currentTimeMillis() + intervalMillis,
+ intent);
+ }
+ boolean idle = SilentManager.getInstance().isIdle(context);
+ ICLogger.d("idle ==> " + idle);
+ if (idle) {
+ Intent targetIntent = new Intent("com.ic.alarm.action.ALARM_RING");
+ targetIntent.putExtra("closeAlarm", 0);
+ targetIntent.putExtra("msg", msg);
+ targetIntent.putExtra("id", id);
+ targetIntent.addCategory(Intent.CATEGORY_DEFAULT);
+ targetIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ context.startActivity(targetIntent);
+ }
+ }
+}
}
}
+ @Override
public int onStartCommand(Intent paramIntent, int paramInt1, int paramInt2) {
if (paramIntent != null && paramIntent.getAction() != null) {
StringBuilder stringBuilder = new StringBuilder();
import android.support.annotation.Nullable;
import android.text.TextUtils;
+import com.enqualcomm.support.utils.ICLogger;
+
import static com.enqualcomm.support.Constants.ACTION_ALARM_ALARM_CHANGE;
public class ICAlarmProvider extends ContentProvider {
}
long insert = writableDatabase.insert(ICDatabaseHelper.tb_alarm, null, values);
//设置闹钟
+ ICLogger.d("notify alarm insert ..." + getContext());
if (getContext() != null) {
getContext().getContentResolver().notifyChange(uri, null);
}
--- /dev/null
+package com.enqualcomm.support.service;
+
+import android.app.AlarmManager;
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Build;
+
+import com.enqualcomm.support.utils.ICLogger;
+
+import java.util.Calendar;
+import java.util.Date;
+
+public class AlarmManagerUtil {
+
+ public static final String ALARM_ACTION = "com.ic.alarm.action.ALARM_CLOCK";
+
+ public static void setAlarmTime(Context context, long timeInMillis, Intent intent) {
+ AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
+ PendingIntent sender = PendingIntent.getBroadcast(context, intent.getIntExtra("id", 0),
+ intent, PendingIntent.FLAG_CANCEL_CURRENT);
+ int interval = (int) intent.getLongExtra("intervalMillis", 0);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
+ am.setWindow(AlarmManager.RTC_WAKEUP, timeInMillis, interval, sender);
+ }
+ }
+
+ public static void cancelAlarm(Context context, String action, int id) {
+ Intent intent = new Intent(action);
+ PendingIntent pi = PendingIntent.getBroadcast(context, id, intent, PendingIntent
+ .FLAG_CANCEL_CURRENT);
+ AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
+ am.cancel(pi);
+ }
+
+ /**
+ * @param flag 周期性时间间隔的标志,flag = 0 表示一次性的闹钟, flag = 1 表示每天提醒的闹钟(1天的时间间隔),flag = 2
+ * 表示按周每周提醒的闹钟(一周的周期性时间间隔)
+ * @param hour 时
+ * @param minute 分
+ * @param id 闹钟的id
+ * @param week week=0表示一次性闹钟或者按天的周期性闹钟,非0 的情况下是几就代表以周为周期性的周几的闹钟
+ * @param tips 闹钟提示信息
+ * @param soundOrVibrator 2表示声音和震动都执行,1表示只有铃声提醒,0表示只有震动提醒
+ */
+ public static void setAlarm(Context context, int flag, int hour, int minute, int id, int
+ week, String tips, int soundOrVibrator) {
+ ICLogger.d("flag ==> " + flag + " hour ==> " + hour + " minute ==> " +
+ minute + " week ==> " + week + " tips==> " +
+ tips + " soundOrVibrator==> " + soundOrVibrator);
+ AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(new Date());
+ long intervalMillis = 0;
+ calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get
+ (Calendar.DAY_OF_MONTH), hour, minute, 0);
+ if (flag == 1) {
+ intervalMillis = 24 * 60 * 60 * 1000;
+ } else if (flag == 2) {
+ intervalMillis = 24 * 60 * 60 * 1000 * 7;
+ }
+ Intent intent = new Intent(ALARM_ACTION);
+ intent.putExtra("intervalMillis", intervalMillis);
+ intent.putExtra("msg", tips);
+ intent.putExtra("id", id);
+ intent.putExtra("soundOrVibrator", soundOrVibrator);
+ PendingIntent sender = PendingIntent.getBroadcast(context, id, intent, PendingIntent
+ .FLAG_UPDATE_CURRENT);
+ ICLogger.d("intervalMillis ==> " + intervalMillis);
+ //4.4以上的
+ long targetTime = calMethod(week, calendar.getTimeInMillis());
+ ICLogger.d("targetTime ==> " + targetTime);
+ am.setExact(AlarmManager.RTC_WAKEUP, targetTime, sender);
+ }
+
+
+ /**
+ * @param weekFlag 传入的是周几
+ * @param dateTime 传入的是时间戳(设置当天的年月日+从选择框拿来的时分秒)
+ * @return 返回起始闹钟时间的时间戳
+ */
+ private static long calMethod(int weekFlag, long dateTime) {
+ long time = 0;
+ //weekflag == 0表示是按天为周期性的时间间隔或者是一次行的,weekfalg非0时表示每周几的闹钟并以周为时间间隔
+ if (weekFlag != 0) {
+ Calendar c = Calendar.getInstance();
+ int week = c.get(Calendar.DAY_OF_WEEK);
+ if (1 == week) {
+ week = 7;
+ } else if (2 == week) {
+ week = 1;
+ } else if (3 == week) {
+ week = 2;
+ } else if (4 == week) {
+ week = 3;
+ } else if (5 == week) {
+ week = 4;
+ } else if (6 == week) {
+ week = 5;
+ } else if (7 == week) {
+ week = 6;
+ }
+ if (weekFlag == week) {
+ if (dateTime > System.currentTimeMillis()) {
+ time = dateTime;
+ } else {
+ time = dateTime + 7 * 24 * 3600 * 1000;
+ }
+ } else if (weekFlag > week) {
+ time = dateTime + (weekFlag - week) * 24 * 3600 * 1000;
+ } else {
+ time = dateTime + (weekFlag - week + 7) * 24 * 3600 * 1000;
+ }
+ } else {
+ if (dateTime > System.currentTimeMillis()) {
+ time = dateTime;
+ } else {
+ time = dateTime + 24 * 3600 * 1000;
+ }
+ }
+ return time;
+ }
+}
import android.database.Cursor;
import android.media.AudioManager;
import android.net.Uri;
+import android.os.Build;
import android.os.Handler;
import android.os.Message;
import android.os.Messenger;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
+import android.util.Log;
import com.enqualcomm.support.Config;
import com.enqualcomm.support.CoreService;
import java.util.ArrayList;
import java.util.Calendar;
-import java.util.Date;
import java.util.Iterator;
import java.util.List;
public class SilentManager extends AbstractInvokeHandlerService {
private static final long ONE_WEEK = 604800000L;
private static final long ONE_DAY = 86400000L;
-
- private List<Alarm> alarms;
- private boolean haveHandSilence;
- private boolean isCalling;
AlarmManager mAlarmManager;
private AlarmReceiver mAlarmReceiver;
Connection mConnection;
return mSilentManger;
}
- private PhoneStateListener phoneStateListener = new PhoneStateListener() {
+ private final PhoneStateListener phoneStateListener = new PhoneStateListener() {
public void onCallStateChanged(int state, String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
switch (state) {
case PRECISE_CALL_STATE_DISCONNECTING: //挂电话
case PRECISE_CALL_STATE_DISCONNECTED: //挂电话
- isCalling = false;
if (ICAudioManager.needMute == true) {
//2秒后恢复音量
- mHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- ICAudioManager.restoreVolume(mContext); //2秒后恢复音量
- ICAudioManager.needMute = false;
- }
+ mHandler.postDelayed(() -> {
+ ICAudioManager.restoreVolume(mContext); //2秒后恢复音量
+ ICAudioManager.needMute = false;
}, 2000);
}
ICLogger.i("========Hung up!");
case PRECISE_CALL_STATE_INCOMING: //来电
case PRECISE_CALL_STATE_ALERTING:
case PRECISE_CALL_STATE_DIALING:
- isCalling = true;
Intent var3 = new Intent();
var3.setAction(ACTION_CLOSE_UNREAD_MSG);
mContext.sendBroadcast(var3);
}
case PRECISE_CALL_STATE_HOLDING://接电话
case PRECISE_CALL_STATE_WAITING:
- isCalling = true;
ICLogger.i("========Answer Call !");
if (ICAudioManager.needMute == true) {
ICAudioManager.setVolumnMute(mContext);
ICLogger.e(e.getMessage(), e);
}
}
-
}
public void cancelAlarm(List<Alarm> alarms) {
- Iterator alarmsIterator = alarms.iterator();
-
- while (alarmsIterator.hasNext()) {
- Alarm alarmItem = (Alarm) alarmsIterator.next();
+ for (Alarm alarmItem : alarms) {
doCancelAlarm(alarmItem);
}
-
}
- private void doCancelAlarm(Alarm alarmItem) {
- String time = alarmItem.time;
- String week = alarmItem.week;
- String ring = alarmItem.ring;
- String name = alarmItem.name;
- ICLogger.d("alarmItem ==> " + alarmItem);
- if (!TextUtils.isEmpty(week)) {
- week = week.replace("W", "");
- }
- char[] result = week.toCharArray();
- int length = result.length;
- for (int i = 1; i < length; ++i) {
- char weekItem = result[i];
- ICLogger.d("cancel alarm ==> " + alarmItem);
- this.mAlarmManager.cancel(this.getPendingIntent(time, week,
- ring, name, weekItem - 47, 0, false));
+ public void doCancelAlarm(Alarm alarmItem) {
+ try {
+ String week = alarmItem.week.replace("W", "");
+ ICLogger.d("alarmItem week==> " + week);
+ int id = Integer.parseInt(alarmItem.id);
+ ICLogger.d("do cancel id ==> " + id);
+ if (TextUtils.isEmpty(week)) {
+ AlarmManagerUtil.cancelAlarm(mContext, AlarmManagerUtil.ALARM_ACTION, id);
+ } else {
+ char[] weekList = week.toCharArray();
+ int weekListLen = weekList.length;
+ for (int i = 0; i < weekListLen; i++) {
+ char item = weekList[i];
+ String alarmIdStr = id + "" + item;
+ ICLogger.d("cancel id ==> " + alarmIdStr);
+ AlarmManagerUtil.cancelAlarm(mContext, AlarmManagerUtil.ALARM_ACTION,
+ Integer.parseInt(alarmIdStr));
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
}
}
String var10 = var3.noticeContent;
this.mAlarmManager.cancel(this.getPendingIntent(var4, var9, var5, var6, var7, var8, var10, false));
}
-
}
private PendingIntent getPendingIntent(String args, boolean repeat) {
// this.isStheartRateTime(var2);
}
- private boolean isIdle(Context context) {
- int callstate = ((TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE)).getCallState();
- boolean isidle;
- if (CALL_STATE_RINGING != callstate && CALL_STATE_OFFHOOK != callstate) {
- isidle = true;
+ public boolean isIdle(Context context) {
+ int callState = ((TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE)).getCallState();
+ boolean isIdle;
+ if (CALL_STATE_RINGING != callState && CALL_STATE_OFFHOOK != callState) {
+ isIdle = true;
} else {
- isidle = false;
+ isIdle = false;
}
-
- return isidle && !this.mInSilent && !this.mRuntime.getBatteryLow();
+ return isIdle && !this.mInSilent && !this.mRuntime.getBatteryLow();
}
private boolean isAntioffTime(boolean var1) {
private void onSilentStateChange(boolean var1) {
SharePreferenceUtil.setPrefBoolean(mContext, "KEY_ISSILENCE", var1);
setSilentConfig(mContext, var1);
- try {
- if (this.alarms != null) {
- if (var1) {
- this.cancelAlarm(this.alarms);
- } else {
- this.setNewAlarm(this.alarms);
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
-
+ //TODO:静音模式按W100的去实现
+ //http://icfota.snicker.com.cn:8888/www/index.php?m=doc&f=view&docID=11
if (this.voiceNotice != null) {
if (var1) {
this.cancelNoticeAlarm(this.voiceNotice);
}
+ public static void setAlarmTime(Context context, long timeInMillis, Intent intent) {
+ AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
+ PendingIntent sender = PendingIntent.getBroadcast(context,
+ intent.getIntExtra("id", 0),
+ intent, PendingIntent.FLAG_CANCEL_CURRENT);
+ int interval = (int) intent.getLongExtra("intervalMillis", 0);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
+ am.setWindow(AlarmManager.RTC_WAKEUP, timeInMillis, interval, sender);
+ }
+ }
+
+ public static void cancelAlarm(Context context, String action, int id) {
+ Intent intent = new Intent(action);
+ PendingIntent pi = PendingIntent.getBroadcast(context, id, intent, PendingIntent
+ .FLAG_CANCEL_CURRENT);
+ AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
+ am.cancel(pi);
+ }
+
/**
* 这个是设置闹钟的,数据库是英卡的库,不是EQC的
*
*/
private List<Alarm> updateIcAlarm() {
List<Alarm> alarmList = this.mDbHelper.queryIcAlarm();
+ Log.d("updateIcAlarm===", "old list size ==> " + alarmList.size());
+ this.cancelAlarm(alarmList);
+ //取消当前所有的闹钟,重新设置
ICLogger.d("this.mInSilent == > " + this.mInSilent);
if (!this.mInSilent) {
- if (this.alarms != null) {
- this.cancelAlarm(this.alarms);
- }
try {
this.setNewAlarm(alarmList);
} catch (Exception e) {
}
- public List<Alarm> queryAlarm() {
- List<Alarm> alarmList = this.mDbHelper.queryAlarm();
- if (!this.mInSilent) {
- if (this.alarms != null) {
- this.cancelAlarm(this.alarms);
- }
- try {
- this.setNewAlarm(alarmList);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- return alarmList;
- }
-
- private ArrayList<Antioff> queryAntioff() {
+ private ArrayList<Antioff> queryAntiOff() {
return this.mDbHelper.queryAntioff(true);
}
}
private void setNewAlarm(List<Alarm> alarmArrayList) {
- Calendar calendar = Calendar.getInstance();
- calendar.set(Calendar.SECOND, 0);
- long currentTime = System.currentTimeMillis();
- Iterator itAlarm = alarmArrayList.iterator();
- while (itAlarm.hasNext()) {
- Alarm alarm = (Alarm) itAlarm.next();
- ICLogger.d("alarm == > " + alarm);
+ for (Alarm alarm : alarmArrayList) {
+ Log.d("setNewAlarm======", "alarm == > " + alarm);
if ("ON".equals(alarm.status)) {
alarm.time = alarm.time.replace(":", "");
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) {
+ ICLogger.d("alarm.week ==> " + alarm.week);
+ char[] weekList = alarm.week.toCharArray();
+ int weekListLen = weekList.length;
+ ICLogger.i("repeat = " + alarm.week + ", list size = " + weekListLen);
+ if (weekListLen > 0) {
//如果week大于0 则证明有循环,没有循环就证明只是一次的闹铃。
- for (int i = 0; i < weeklistlen; i++) {
- long tmpTimeInMillis;
- int dayofweek = weeklist[i] - 47;
- calendar.set(Calendar.DAY_OF_WEEK, dayofweek);
- tmpTimeInMillis = calendar.getTimeInMillis();
- if (tmpTimeInMillis <= currentTime) {
- tmpTimeInMillis += ONE_WEEK;
- }
- Date date = new Date(tmpTimeInMillis);
- ICLogger.i("set date " + date.toLocaleString());
- PendingIntent pendingIntent = this.getPendingIntent(alarm.time,
- alarm.week, alarm.ring, alarm.name, dayofweek, tmpTimeInMillis, true);
- AlarmHelper.setAlarm(this.mAlarmManager, tmpTimeInMillis, pendingIntent);
+ for (int i = 0; i < weekListLen; i++) {
+ String itemWeek = weekList[i] + "";
+ ICLogger.d("itemWeek ==> " + itemWeek);
+ String idStr = alarm.id + itemWeek;
+ ICLogger.d("idStr ==> " + idStr);
+ //Id==> 闹钟ID+星期
+ int flag = itemWeek.equals("0") ? 0 : 2;
+ AlarmManagerUtil.setAlarm(mContext, flag,
+ hour,
+ minute,
+ Integer.parseInt(idStr),
+ Integer.parseInt(itemWeek),
+ alarm.name,
+ 1);
}
} else {
- //只是一次的闹铃
- long tmpTimeInMillis;
- Date date = new Date(System.currentTimeMillis());
- ICLogger.i("date " + date.toLocaleString());
- Calendar c = Calendar.getInstance();
- c.setTime(date);
- int wek = c.get(Calendar.DAY_OF_WEEK);
- calendar.set(Calendar.DAY_OF_WEEK, wek);
- tmpTimeInMillis = calendar.getTimeInMillis();
- if (tmpTimeInMillis <= currentTime) {
- tmpTimeInMillis += ONE_DAY;
- }
- date = new Date(tmpTimeInMillis);
- c = Calendar.getInstance();
- c.setTime(date);
- wek = c.get(Calendar.DAY_OF_WEEK);
+ //单次
+ //flag周期性时间间隔的标志,flag = 0 表示一次性的闹钟, flag = 1 表示每天提醒的闹钟(1天的时间间隔),flag = 2
+ //表示按周每周提醒的闹钟(一周的周期性时间间隔)
+ AlarmManagerUtil.setAlarm(mContext, 0,
+ hour,
+ minute,
+ Integer.parseInt(alarm.id),
+ 0, alarm.name, 1
+ );
- ICLogger.i("set date " + date.toLocaleString());
-
- PendingIntent pendingIntent = this.getPendingIntent(alarm.time,
- alarm.week, alarm.ring, alarm.name, wek, tmpTimeInMillis, false);
- AlarmHelper.setAlarmOnce(this.mAlarmManager, tmpTimeInMillis, pendingIntent);
}
}
}
}
var3.upDateorInsertDeviceStatus(var4);
this.handSilence(this.mContext, this.mInSilent);
- this.alarms = this.queryAlarm();
this.voiceNotice = this.queryNotice();
runtime.getContextProxy().context.getContentResolver().registerContentObserver(ICContentProvider.SILENT_URI, false, this.mContentObserver);
this.mAlarmReceiver = new AlarmReceiver();
} else {
silentchange = true;
}
-
//this.handleSilent(runtime, silentchange ^ true);
}
-
return false;
}
}
class AlarmReceiver extends BroadcastReceiver {
- AlarmReceiver() {
- }
-
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
StringBuilder var3 = new StringBuilder();
SilentManager.this.voiceNotice = SilentManager.this.queryNotice();
} else if (ACTION_ALARM_ALARM_CHANGE.equals(action)) {
//这是英卡的闹钟库
- List<Alarm> alarms = updateIcAlarm();
- if (alarms.size() == 0) {
- //这是EQC的
- SilentManager.this.alarms = queryAlarm();
- }
+ updateIcAlarm();
} else if ("com.enqualcomm.support.STHEART_RATE_ALARM_CHANGE".equals(action)) {
SilentManager.this.stheartRateList = SilentManager.this.queryStheartRate();
SilentManager.this.getStartAndEndStheartRateTime();
var7.append(var5);
var7.append(")");
} else if (ACTION_ANTIOFF_ALARM_CHANGE.equals(action)) {
- SilentManager.this.sAntioffList = SilentManager.this.queryAntioff();
+ SilentManager.this.sAntioffList = SilentManager.this.queryAntiOff();
SilentManager.this.getStartAndEndSantioffTime();
SilentManager.this.mIsNeedAntioff = SilentManager.this.isAntioffTime(false);
} else if (ACTION_ALARM_DELETE_ALARM.equals(action)) {
}\r
\r
//设置闹铃\r
- public static void setAlarm(AlarmManager paramAlarmManager, long triggerAtMillis, PendingIntent paramPendingIntent) {\r
+ public static void setAlarm(AlarmManager paramAlarmManager, long triggerAtMillis,\r
+ PendingIntent paramPendingIntent) {\r
//循环闹钟\r
paramAlarmManager.set(AlarmManager.RTC_WAKEUP, triggerAtMillis, paramPendingIntent);\r
//paramAlarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, triggerAtMillis, intervalMillis, paramPendingIntent);\r
this.cr.delete(ICContentProvider.UNREAD_MSG_URI, (String) null, (String[]) null);
}
- public void saveAlarm(ArrayList<Alarm> paramArrayList) {
- this.cr.delete(ICContentProvider.ALARM_URI, null, null);
- int i = paramArrayList.size();
- ICLogger.d("alarm size == > " + i);
- if (i != 0) {
- ContentValues[] arrayOfContentValues = new ContentValues[i];
- for (byte b = 0; b < i; b++) {
- Alarm alarm = paramArrayList.get(b);
- ContentValues contentValues = new ContentValues();
- arrayOfContentValues[b] = contentValues;
- contentValues.put("TIME", alarm.time);
- contentValues.put("WEEK", alarm.week);
- contentValues.put("RING", alarm.ring);
- contentValues.put("STATUS", alarm.status);
- contentValues.put("NAME", alarm.name);
- ICLogger.d("alarm is == > " + alarm);
- }
- this.cr.bulkInsert(ICContentProvider.ALARM_URI, arrayOfContentValues);
- }
- this.context.sendBroadcast(new Intent(ACTION_ALARM_ALARM_CHANGE));
- }
public void saveAntioff(ArrayList<Antioff> paramArrayList) {
String str;
import android.Manifest;
import android.annotation.SuppressLint;
import android.content.BroadcastReceiver;
+import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import com.enqualcomm.support.bean.StringMessage;
import com.enqualcomm.support.bean.VoiceContent;
import com.enqualcomm.support.bean.voicePacket;
+import com.enqualcomm.support.provider.ICAlarmProvider;
import com.enqualcomm.support.provider.ICDatabaseHelper;
-import com.enqualcomm.support.provider.ICMembersProvider;
import com.enqualcomm.support.provider.ICGlobalSettingsProvider;
+import com.enqualcomm.support.provider.ICMembersProvider;
import com.enqualcomm.support.service.HeartRateManager;
+import com.enqualcomm.support.service.SilentManager;
import com.enqualcomm.support.utils.Connection;
import com.enqualcomm.support.utils.ICLogger;
import com.enqualcomm.support.utils.ProfileManager;
import java.util.List;
import java.util.Locale;
+import static com.enqualcomm.support.Constants.ACTION_ALARM_ALARM_CHANGE;
import static com.enqualcomm.support.Constants.FROM_SERVER;
import static com.enqualcomm.support.bean.Contact.GROUP_ALL;
import static com.ic.protocols.protocol_anan.CMD_TYPE.AP32;
cmd.replace(cmdMap.get(BP75), cmdMap.get(CMD_TYPE.AP75)).replace(imeiCode + ",", "") + CMDEND)
);
//闹钟入库
- mRuntime.getDbHelper().saveAlarm(alarmList);
+ ContentResolver contentResolver = mRuntime.getContextProxy().getResolver();
+ //删除之前先取消已经设置的闹钟
+ List<Alarm> oldAlarmList = mRuntime.getDbHelper().queryIcAlarm();
+ //取消掉上次的闹钟,再进行设置新的
+ SilentManager.getInstance().cancelAlarm(oldAlarmList);
+ //先删除所有的闹钟
+ contentResolver.delete(Uri.parse(ICAlarmProvider.ALARMS), null, null);
+ for (Alarm alarm : alarmList) {
+ ContentValues contentValues = new ContentValues();
+ contentValues.put(ICDatabaseHelper.alarm_name, alarm.name);
+ contentValues.put(ICDatabaseHelper.alarm_week, alarm.week);
+ contentValues.put(ICDatabaseHelper.alarm_ring, alarm.ring);
+ contentValues.put(ICDatabaseHelper.alarm_time, alarm.time);
+ contentValues.put(ICDatabaseHelper.alarm_status, alarm.status);
+ contentValues.put(ICDatabaseHelper.updateTime, System.currentTimeMillis());
+ contentValues.put(ICDatabaseHelper.createTime, System.currentTimeMillis());
+ contentResolver.insert(Uri.parse(ICAlarmProvider.ALARMS), contentValues);
+ }
+ //设置闹钟
+ mRuntime.getContextProxy().context.sendBroadcast(new Intent(ACTION_ALARM_ALARM_CHANGE));
} catch (Exception e) {
e.printStackTrace();
ICLogger.d("闹钟指令解析出错...");
package com.ic.protocols;
import android.content.ComponentName;
+import android.content.ContentResolver;
+import android.content.ContentValues;
import android.content.Intent;
import android.net.Uri;
import android.os.Environment;
import com.enqualcomm.support.bean.StringMessage;
import com.enqualcomm.support.bean.VoiceContent;
import com.enqualcomm.support.bean.voicePacket;
+import com.enqualcomm.support.provider.ICAlarmProvider;
+import com.enqualcomm.support.provider.ICDatabaseHelper;
import com.enqualcomm.support.service.HeartRateManager;
+import com.enqualcomm.support.service.SilentManager;
import com.enqualcomm.support.utils.Connection;
import com.enqualcomm.support.utils.DeviceInfoUtil;
import com.enqualcomm.support.utils.ICLogger;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
+import java.util.List;
+import static com.enqualcomm.support.Constants.ACTION_ALARM_ALARM_CHANGE;
import static com.enqualcomm.support.Constants.FROM_SERVER;
import static com.enqualcomm.support.LocationClient.LOCATION_MODE;
import static com.enqualcomm.support.bean.Contact.GROUP_ALL;
//设置闹钟
public void handleBP85(String cmd, Connection connection, Runtime runtime) {
-// IWBP85,867155030001063,155312,1,1,0235,12,1,1
-// IWBP85,867155030002145,945166,1,0,
-// IWBP85,867155030001064,265960,1,1,1130,,1,1
-// IWBP85,353456789012345,080835,1,3, 0900,135,1,1@0900 ,135,1,2@0900 ,135,1,3#
-//353456789012345:IMEI号,设备唯一ID
-//080835 :指令流水号
-//1: 表示闹钟总开关,1为开,0 为关
-//3: 表示闹钟个数
-//0900 ,135,1,1,表示一组闹钟,0900表示早上09:00, 135表示周一周三周五,使用24小时制
-//1表示该组闹钟开启或关闭状态 1表示开启 0表示关闭
-//1表示吃药提醒
-//2 表示喝水提醒
-//3 表示久坐提醒
-//多组闹钟之间用”@”符号分隔
+ //IWBP85,867155030001063,155312,1,1,0235,12,1,1
+ //IWBP85,867155030002145,945166,1,0,
+ //IWBP85,867155030001064,265960,1,1,1130,,1,1
+ //IWBP85,353456789012345,080835,1,3, 0900,135,1,1@0900 ,135,1,2@0900 ,135,1,3#
+ //353456789012345:IMEI号,设备唯一ID
+ //080835 :指令流水号
+ //1: 表示闹钟总开关,1为开,0 为关
+ //3: 表示闹钟个数
+ //0900 ,135,1,1,表示一组闹钟,0900表示早上09:00, 135表示周一周三周五,使用24小时制
+ //1表示该组闹钟开启或关闭状态 1表示开启 0表示关闭
+ //1表示吃药提醒
+ //2 表示喝水提醒
+ //3 表示久坐提醒
+ //多组闹钟之间用”@”符号分隔
String imei = "", cmdindex = "0"/*指令流水号*/;
int all_alarmswitch = 0 /*总开关 1为开,0 为关*/,
}
}//循环获取alarm数据结束
- runtime.getDbHelper().saveAlarm(alarmlist);
-
+ //闹钟入库
+ ContentResolver contentResolver = mRuntime.getContextProxy().getResolver();
+ //删除之前先取消已经设置的闹钟
+ List<Alarm> oldAlarmList = mRuntime.getDbHelper().queryIcAlarm();
+ //取消掉上次的闹钟,再进行设置新的
+ SilentManager.getInstance().cancelAlarm(oldAlarmList);
+ //先删除所有的闹钟
+ contentResolver.delete(Uri.parse(ICAlarmProvider.ALARMS), null, null);
+ for (Alarm alarm : alarmlist) {
+ ContentValues contentValues = new ContentValues();
+ contentValues.put(ICDatabaseHelper.alarm_name, alarm.name);
+ contentValues.put(ICDatabaseHelper.alarm_week, alarm.week);
+ contentValues.put(ICDatabaseHelper.alarm_ring, alarm.ring);
+ contentValues.put(ICDatabaseHelper.alarm_time, alarm.time);
+ contentValues.put(ICDatabaseHelper.alarm_status, alarm.status);
+ contentValues.put(ICDatabaseHelper.updateTime, System.currentTimeMillis());
+ contentValues.put(ICDatabaseHelper.createTime, System.currentTimeMillis());
+ contentResolver.insert(Uri.parse(ICAlarmProvider.ALARMS), contentValues);
+ }
+ //设置闹钟
+ mRuntime.getContextProxy().context.sendBroadcast(new Intent(ACTION_ALARM_ALARM_CHANGE));
//do clean and set alarm things
} catch (Exception e) {
ICLogger.e(e.getMessage(), e);
import com.enqualcomm.support.bean.Runtime;
import com.enqualcomm.support.bean.Silent;
import com.enqualcomm.support.bean.StringMessage;
+import com.enqualcomm.support.provider.ICAlarmProvider;
import com.enqualcomm.support.provider.ICDatabaseHelper;
import com.enqualcomm.support.provider.ICFollowProvider;
+import com.enqualcomm.support.provider.ICGlobalSettingsProvider;
import com.enqualcomm.support.provider.ICMembersProvider;
import com.enqualcomm.support.provider.WeTalkMessageProvider;
-import com.enqualcomm.support.provider.ICGlobalSettingsProvider;
import com.enqualcomm.support.service.HeartRateManager;
+import com.enqualcomm.support.service.SilentManager;
import com.enqualcomm.support.utils.AlarmHelper;
import com.enqualcomm.support.utils.CameraUtil;
import com.enqualcomm.support.utils.Connection;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
+import java.util.List;
import java.util.UUID;
+import static com.enqualcomm.support.Constants.ACTION_ALARM_ALARM_CHANGE;
import static com.enqualcomm.support.Constants.ALARM_POWER_OFF;
import static com.enqualcomm.support.Constants.FROM_SERVER;
import static com.enqualcomm.support.Constants.contact;
alarmList.add(new Alarm("ST" + time.substring(0, 2) + "." + time.substring(3),
"W" + weekValue, "CON", "1".equals(state) ? "ON" : "OFF", "闹铃"));
}
- mRuntime.getDbHelper().saveAlarm(alarmList);
+ //闹钟入库
+ ContentResolver contentResolver = mRuntime.getContextProxy().getResolver();
+ //删除之前先取消已经设置的闹钟
+ List<Alarm> oldAlarmList = mRuntime.getDbHelper().queryIcAlarm();
+ //取消掉上次的闹钟,再进行设置新的
+ SilentManager.getInstance().cancelAlarm(oldAlarmList);
+ //先删除所有的闹钟
+ contentResolver.delete(Uri.parse(ICAlarmProvider.ALARMS), null, null);
+ for (Alarm alarm : alarmList) {
+ ContentValues contentValues = new ContentValues();
+ contentValues.put(ICDatabaseHelper.alarm_name, alarm.name);
+ contentValues.put(ICDatabaseHelper.alarm_week, alarm.week);
+ contentValues.put(ICDatabaseHelper.alarm_ring, alarm.ring);
+ contentValues.put(ICDatabaseHelper.alarm_time, alarm.time);
+ contentValues.put(ICDatabaseHelper.alarm_status, alarm.status);
+ contentValues.put(ICDatabaseHelper.updateTime, System.currentTimeMillis());
+ contentValues.put(ICDatabaseHelper.createTime, System.currentTimeMillis());
+ contentResolver.insert(Uri.parse(ICAlarmProvider.ALARMS), contentValues);
+ }
+ //设置闹钟
+ mRuntime.getContextProxy().context.sendBroadcast(new Intent(ACTION_ALARM_ALARM_CHANGE));
}
}
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Intent;
+import android.database.Cursor;
import android.net.Uri;
import android.os.Environment;
import android.os.Handler;
import com.enqualcomm.support.bean.StringMessage;
import com.enqualcomm.support.bean.VoiceContent;
import com.enqualcomm.support.bean.voicePacket;
+import com.enqualcomm.support.provider.ICAlarmProvider;
import com.enqualcomm.support.provider.ICDatabaseHelper;
import com.enqualcomm.support.provider.ICMembersProvider;
import com.enqualcomm.support.provider.WeTalkMessageProvider;
+import com.enqualcomm.support.service.SilentManager;
import com.enqualcomm.support.utils.AESCipher;
import com.enqualcomm.support.utils.Connection;
import com.enqualcomm.support.utils.DeviceInfoUtil;
import java.util.Date;
import java.util.HashMap;
+import static com.enqualcomm.support.Constants.ACTION_ALARM_ALARM_CHANGE;
import static com.enqualcomm.support.bean.Contact.GROUP_ALL;
import static com.enqualcomm.support.bean.Content.CONTACT_CATEGORY_GROUP;
//设置闹钟
public void handleAP09(Runtime runtime, Connection connection, String cmd) {
-
// AP09,A,B,C,YYMMDD,HHMMSS
//A:表示删除、添加(修改)闹钟功能,分别用0、1表示(类型%d)
//B:闹铃索引(0-4)
//C:表示闹钟类型(0-0x7F),如下:
//0:一次,不重复;0x01:星期日;0x02:星期一;0x04:星期二;0x08:星期三;0x10:星期四;0x20:星期五;0x40星期六
//如果每天闹钟:0x01|0x02|0x04|0x08|0x10|0x20|0x40=0x7F
- // (0040357593060153353AP09,1,0,127,150728,152900,0000000000000008)
+ //(0040357593060153353AP09,1,0,127,150728,152900,0000000000000008)
//增加(修改)一条索引为0的闹铃,每天15:29:00响铃
//(002E357593060153353AP09,0,0,0000000000000008)
//删除一条索引为0的闹铃
- String cmdlist[] = cmd.split(CMDSPLIT);
- if (cmdlist.length == 7) {
- String cmdindex = cmdlist[6];
+ String cmdList[] = cmd.split(CMDSPLIT);
+ if (cmdList.length == 7) {
+ String cmdIndex = cmdList[6];
try {
- String do_cmd = "";
- int alarmindex = 0 /*alarm索引*/;
- int alarmswitch = 1 /*1为开,0 为关*/;
- int alarmcount = 0 /*表示闹钟个数*/;
- String alarmtime = "";//0900表示早上09:00
+ String doCmd = "";
+ String alarmTime = "";//0900表示早上09:00
// 0x01|0x02|0x04|0x08|0x10|0x20|0x40=0x7F
- do_cmd = cmdlist[1];//0删除、1添加(修改)闹钟功能
- alarmtime = cmdlist[5]; //HHMMSS
- alarmindex = Integer.parseInt(cmdlist[2]);
- String repeatStr = cmdlist[3];
+ doCmd = cmdList[1];//0删除、1添加(修改)闹钟功能
+ String alarmIndex = cmdList[2];
+ ICLogger.d("alarmIndex ==> " + alarmIndex);
+ alarmTime = cmdList[5]; //HHMMSS
+ String repeatStr = cmdList[3];
String repeat = parseWeek(repeatStr);
- ArrayList<Alarm> alarmList = new ArrayList<>();
- if ("1".equals(do_cmd)) {
- alarmList.add(new Alarm("ST" + alarmtime.substring(0, 2) + "." + alarmtime.substring(2), "W" + repeat, "CON", alarmswitch == 1 ? "ON" : "OFF", "闹铃"));
+ Alarm alarmItem = new Alarm("ST" + alarmTime.substring(0, 2) + "." + alarmTime.substring(2, 4),
+ "W" + repeat, "CON", doCmd.equals("1") ? "ON" : "OFF", "闹铃" + alarmIndex);
+ Log.d("handleAP09=====", "alarmItem == > " + alarmItem);
+ ContentResolver resolver = runtime.getContextProxy().getResolver();
+ //添加之前,先删除时间一样的
+ Cursor query = resolver.query(Uri.parse(ICAlarmProvider.ALARMS),
+ new String[]{ICDatabaseHelper.alarm_id},
+ ICDatabaseHelper.alarm_name + "=?",
+ new String[]{
+ alarmItem.name
+ }, null
+ );
+ if (query != null) {
+ if (query.moveToNext()) {
+ alarmItem.id = query.getString(0);
+ ICLogger.d("target delete id ==> " + alarmItem.id);
+ SilentManager.getInstance().doCancelAlarm(alarmItem);
+ }
+ query.close();
+ }
+ resolver.delete(Uri.parse(ICAlarmProvider.ALARMS),
+ ICDatabaseHelper.alarm_name + "=?",
+ new String[]{
+ alarmItem.name
+ });
+ ICLogger.d("do_cmd ==> " + doCmd + " alarmItem.name ==> " + alarmItem.name);
+ if ("1".equals(doCmd)) {
+ //入库
+ ContentValues contentValues = new ContentValues();
+ contentValues.put(ICDatabaseHelper.alarm_name, alarmItem.name);
+ contentValues.put(ICDatabaseHelper.alarm_week, alarmItem.week);
+ contentValues.put(ICDatabaseHelper.alarm_ring, alarmItem.ring);
+ contentValues.put(ICDatabaseHelper.alarm_time, alarmItem.time);
+ contentValues.put(ICDatabaseHelper.alarm_status, alarmItem.status);
+ contentValues.put(ICDatabaseHelper.updateTime, System.currentTimeMillis());
+ contentValues.put(ICDatabaseHelper.createTime, System.currentTimeMillis());
+ resolver.insert(Uri.parse(ICAlarmProvider.ALARMS), contentValues);
+ //设置闹钟
+ mRuntime.getContextProxy().context.sendBroadcast(new Intent(ACTION_ALARM_ALARM_CHANGE));
}
- //do clean and set alarm things
- runtime.getDbHelper().saveAlarm(alarmList);
- connection.send(BPXX_REPLY(runtime, CMD_TYPE.BP09, cmdindex, true));
+ connection.send(BPXX_REPLY(runtime, CMD_TYPE.BP09, cmdIndex, true));
} catch (Exception e) {
- connection.send(BPXX_REPLY(runtime, CMD_TYPE.BP09, cmdindex, false));
+ connection.send(BPXX_REPLY(runtime, CMD_TYPE.BP09, cmdIndex, false));
}
- connection.send(BPXX_REPLY(runtime, CMD_TYPE.BP09, cmdlist[6], true));
- } else if (cmdlist.length == 4) {
- //(002E357593060153353AP09,0,0,0000000000000008)
- //删除一条索引为0的闹铃
- log("AP09 删除闹铃 ");
- connection.send(BPXX_REPLY(runtime, CMD_TYPE.BP09, cmdlist[3], true));
} else {
ICLogger.e("AP09 format error!");
}
package com.ic.protocols;
import android.content.ComponentName;
+import android.content.ContentResolver;
+import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import com.enqualcomm.support.bean.StringMessage;
import com.enqualcomm.support.bean.VoiceContent;
import com.enqualcomm.support.bean.voicePacket;
+import com.enqualcomm.support.provider.ICAlarmProvider;
+import com.enqualcomm.support.provider.ICDatabaseHelper;
import com.enqualcomm.support.service.HeartRateManager;
+import com.enqualcomm.support.service.SilentManager;
import com.enqualcomm.support.utils.CameraUtil;
import com.enqualcomm.support.utils.Connection;
import com.enqualcomm.support.utils.ICAudioManager;
import java.util.List;
import java.util.Locale;
+import static com.enqualcomm.support.Constants.ACTION_ALARM_ALARM_CHANGE;
import static com.enqualcomm.support.Constants.DIALOG_ACTION;
import static com.enqualcomm.support.Constants.FROM_SERVER;
import static com.enqualcomm.support.LocationClient.LOCATION_MODE;
}
}//循环获取alarm数据结束
- runtime.getDbHelper().saveAlarm(alarmList);
-
+ //闹钟入库
+ ContentResolver contentResolver = mRuntime.getContextProxy().getResolver();
+ //删除之前先取消已经设置的闹钟
+ List<Alarm> oldAlarmList = mRuntime.getDbHelper().queryIcAlarm();
+ //取消掉上次的闹钟,再进行设置新的
+ SilentManager.getInstance().cancelAlarm(oldAlarmList);
+ //先删除所有的闹钟
+ contentResolver.delete(Uri.parse(ICAlarmProvider.ALARMS), null, null);
+ for (Alarm alarm : alarmList) {
+ ContentValues contentValues = new ContentValues();
+ contentValues.put(ICDatabaseHelper.alarm_name, alarm.name);
+ contentValues.put(ICDatabaseHelper.alarm_week, alarm.week);
+ contentValues.put(ICDatabaseHelper.alarm_ring, alarm.ring);
+ contentValues.put(ICDatabaseHelper.alarm_time, alarm.time);
+ contentValues.put(ICDatabaseHelper.alarm_status, alarm.status);
+ contentValues.put(ICDatabaseHelper.updateTime, System.currentTimeMillis());
+ contentValues.put(ICDatabaseHelper.createTime, System.currentTimeMillis());
+ contentResolver.insert(Uri.parse(ICAlarmProvider.ALARMS), contentValues);
+ }
//do clean and set alarm things
-
+ //设置闹钟
+ mRuntime.getContextProxy().context.sendBroadcast(new Intent(ACTION_ALARM_ALARM_CHANGE));
}
-//IWBP85,867155030002145,410385,1,0,#
-
+ //IWBP85,867155030002145,410385,1,0,#
String replacement = new StringBuilder("IWBP85,").append(imei).append(",").toString();
String replycmd = cmd.replace(replacement, "");
ICLogger.i("gen reply " + replacement + " " + replycmd);
package com.ic.protocols;
import android.content.ComponentName;
+import android.content.ContentResolver;
+import android.content.ContentValues;
import android.content.Intent;
import android.net.Uri;
import android.os.Environment;
import com.enqualcomm.support.bean.StringMessage;
import com.enqualcomm.support.bean.VoiceContent;
import com.enqualcomm.support.bean.voicePacket;
+import com.enqualcomm.support.provider.ICAlarmProvider;
+import com.enqualcomm.support.provider.ICDatabaseHelper;
import com.enqualcomm.support.service.HeartRateManager;
+import com.enqualcomm.support.service.SilentManager;
import com.enqualcomm.support.utils.Connection;
import com.enqualcomm.support.utils.ICLogger;
import com.enqualcomm.support.utils.LanguageUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
+import java.util.List;
+import static com.enqualcomm.support.Constants.ACTION_ALARM_ALARM_CHANGE;
import static com.enqualcomm.support.Constants.FROM_SERVER;
import static com.enqualcomm.support.LocationClient.LOCATION_MODE;
import static com.enqualcomm.support.bean.Contact.GROUP_ALL;
//设置闹钟
public void handleBP85(String cmd, Connection connection, Runtime runtime) {
-// IWBP85,867155030001063,155312,1,1,0235,12,1,1
-// IWBP85,867155030002145,945166,1,0,
-// IWBP85,867155030001064,265960,1,1,1130,,1,1
-// IWBP85,353456789012345,080835,1,3, 0900,135,1,1@0900 ,135,1,2@0900 ,135,1,3#
-//353456789012345:IMEI号,设备唯一ID
-//080835 :指令流水号
-//1: 表示闹钟总开关,1为开,0 为关
-//3: 表示闹钟个数
-//0900 ,135,1,1,表示一组闹钟,0900表示早上09:00, 135表示周一周三周五,使用24小时制
-//1表示该组闹钟开启或关闭状态 1表示开启 0表示关闭
-//1表示吃药提醒
-//2 表示喝水提醒
-//3 表示久坐提醒
-//多组闹钟之间用”@”符号分隔
+ // IWBP85,867155030001063,155312,1,1,0235,12,1,1
+ // IWBP85,867155030002145,945166,1,0,
+ // IWBP85,867155030001064,265960,1,1,1130,,1,1
+ // IWBP85,353456789012345,080835,1,3, 0900,135,1,1@0900 ,135,1,2@0900 ,135,1,3#
+ //353456789012345:IMEI号,设备唯一ID
+ //080835 :指令流水号
+ //1: 表示闹钟总开关,1为开,0 为关
+ //3: 表示闹钟个数
+ //0900 ,135,1,1,表示一组闹钟,0900表示早上09:00, 135表示周一周三周五,使用24小时制
+ //1表示该组闹钟开启或关闭状态 1表示开启 0表示关闭
+ //1表示吃药提醒
+ //2 表示喝水提醒
+ //3 表示久坐提醒
+ //多组闹钟之间用”@”符号分隔
String imei = "", cmdindex = "0"/*指令流水号*/;
int all_alarmswitch = 0 /*总开关 1为开,0 为关*/,
}
}
- }//循环获取alarm数据结束
- runtime.getDbHelper().saveAlarm(alarmlist);
-
+ }
+ //闹钟入库
+ ContentResolver contentResolver = mRuntime.getContextProxy().getResolver();
+ //删除之前先取消已经设置的闹钟
+ List<Alarm> oldAlarmList = mRuntime.getDbHelper().queryIcAlarm();
+ //取消掉上次的闹钟,再进行设置新的
+ SilentManager.getInstance().cancelAlarm(oldAlarmList);
+ //先删除所有的闹钟
+ contentResolver.delete(Uri.parse(ICAlarmProvider.ALARMS), null, null);
+ for (Alarm alarm : alarmlist) {
+ ContentValues contentValues = new ContentValues();
+ contentValues.put(ICDatabaseHelper.alarm_name, alarm.name);
+ contentValues.put(ICDatabaseHelper.alarm_week, alarm.week);
+ contentValues.put(ICDatabaseHelper.alarm_ring, alarm.ring);
+ contentValues.put(ICDatabaseHelper.alarm_time, alarm.time);
+ contentValues.put(ICDatabaseHelper.alarm_status, alarm.status);
+ contentValues.put(ICDatabaseHelper.updateTime, System.currentTimeMillis());
+ contentValues.put(ICDatabaseHelper.createTime, System.currentTimeMillis());
+ contentResolver.insert(Uri.parse(ICAlarmProvider.ALARMS), contentValues);
+ }
+ //do clean and set alarm things
+ //设置闹钟
+ mRuntime.getContextProxy().context.sendBroadcast(new Intent(ACTION_ALARM_ALARM_CHANGE));
//do clean and set alarm things
-
}
-//IWBP85,867155030002145,410385,1,0,#
-
+ //IWBP85,867155030002145,410385,1,0,#
String replacement = new StringBuilder("IWBP85,").append(imei).append(",").toString();
String replycmd = cmd.replace(replacement, "");
ICLogger.i("gen reply " + replacement + " " + replycmd);
//示例数据:IWAP50,36.7,90#
return genStringMessage(cmdMap.get(CMD_TYPE.AP50),
new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP50))
- .append(CMDSPLIT).append(ds.tempInfo.currentBodyTemp)
- .append(CMDSPLIT).append("100")
- .append(CMDEND).toString());
+ .append(CMDSPLIT).append(ds.tempInfo.currentBodyTemp)
+ .append(CMDSPLIT).append("100")
+ .append(CMDEND).toString());
}
//2 表示喝水提醒
//3 表示久坐提醒
//多组闹钟之间用”@”符号分隔
-
String imei = "", cmdindex = "0"/*指令流水号*/;
int all_alarmswitch = 0 /*总开关 1为开,0 为关*/,
alarmswitch = 0 /*1为开,0 为关*/,
}
}
- }//循环获取alarm数据结束
- runtime.getDbHelper().saveAlarm(alarmList);
+ }
+ //闹钟入库
+ ContentResolver contentResolver = mRuntime.getContextProxy().getResolver();
+ //先删除所有的闹钟
+ contentResolver.delete(Uri.parse(ICAlarmProvider.ALARMS), null, null);
+ for (Alarm alarm : alarmList) {
+ ContentValues contentValues = new ContentValues();
+ contentValues.put(ICDatabaseHelper.alarm_name, alarm.name);
+ contentValues.put(ICDatabaseHelper.alarm_week, alarm.week);
+ contentValues.put(ICDatabaseHelper.alarm_ring, alarm.ring);
+ contentValues.put(ICDatabaseHelper.alarm_time, alarm.time);
+ contentValues.put(ICDatabaseHelper.alarm_status, alarm.status);
+ contentValues.put(ICDatabaseHelper.updateTime, System.currentTimeMillis());
+ contentValues.put(ICDatabaseHelper.createTime, System.currentTimeMillis());
+ contentResolver.insert(Uri.parse(ICAlarmProvider.ALARMS), contentValues);
+ }
+ //设置闹钟
+ mRuntime.getContextProxy().context.sendBroadcast(new Intent(ACTION_ALARM_ALARM_CHANGE));
}
//IWBP85,867155030002145,410385,1,0,#
-
String replacement = new StringBuilder("IWBP85,").append(imei).append(",").toString();
String replycmd = cmd.replace(replacement, "");
ICLogger.i("gen reply " + replacement + " " + replycmd);
String[] alarmItemArray = substring.split("@");
ContentResolver resolver = mRuntime.getContextProxy().getResolver();
//删除之前先取消已经设置的闹钟
- List<Alarm> alarmList = mRuntime.getDbHelper().queryIcAlarm();
- if (alarmList == null || alarmList.size() == 0) {
- //如果没有的话就去另外一个获取
- alarmList = SilentManager.getInstance().queryAlarm();
- }
+ List<Alarm> oldAlarmList = mRuntime.getDbHelper().queryIcAlarm();
//取消掉上次的闹钟,再进行设置新的
- SilentManager.getInstance().cancelAlarm(alarmList);
+ SilentManager.getInstance().cancelAlarm(oldAlarmList);
//闹钟下发,也是要清空闹钟的
resolver.delete(Uri.parse(ICAlarmProvider.ALARMS), null, null);
for (String itemStr : alarmItemArray) {
-#Sat Sep 04 17:40:07 CST 2021\r
-VERSION_CODE=946\r
+#Wed Sep 08 19:49:14 CST 2021\r
+VERSION_CODE=947\r