-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":490,"versionName":"2008102058","enabled":true,"outputFile":"ICSer_V490_2008102058_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V490_2008102058_release.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":491,"versionName":"2008111430","enabled":true,"outputFile":"ICSer_V491_2008111430_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V491_2008111430_release.apk","properties":{}}]
\ No newline at end of file
Config.setPPGTestCycle(this, 0);\r
Config.setTemperatureTestCycle(runtime, 0);\r
Config.setConfigInitFlag(this, 1);\r
- int contactcount=runtime.getDbHelper().getContactCount(getContentResolver());\r
- ICLogger.i("=====Contact count "+contactcount);\r
- if(contactcount==0){ //如果没有SOS\r
- ICLogger.i("=====add SOS 07522312120 ");\r
- ArrayList<Contact> contactArray=new ArrayList<Contact>();\r
- contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos1", "07522312120"));\r
- runtime.getDbHelper().saveContacts(contactArray,false,false,false,false,false,true);\r
- }\r
+// int contactcount=runtime.getDbHelper().getContactCount(getContentResolver());\r
+// ICLogger.i("=====Contact count "+contactcount);\r
+// if(contactcount==0){ //如果没有SOS\r
+// ICLogger.i("=====add SOS 07522312120 ");\r
+// ArrayList<Contact> contactArray=new ArrayList<Contact>();\r
+// contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos1", "07522312120"));\r
+// runtime.getDbHelper().saveContacts(contactArray,false,false,false,false,false,true);\r
+// }\r
}\r
}else{\r
\r
\r
//备份DB数据到sd cache目录,为调试方便\r
Util.getDBFile();\r
+// test(); //test function\r
+ }\r
\r
+ private void test(){\r
+\r
+ ICLogger.i("周一清除所有睡眠数据Record");\r
+ runtime.getDbHelper().deleteSleepData();\r
}\r
\r
public static void DevliverStringMessage(String cmd){\r
si.calculate_sleepInfo(runtime);\r
\r
runtime.getDbHelper().updateSleepInfo(si);\r
-\r
+ if (TimeUtil.getWeek().equals("周一")){\r
+ ICLogger.i("周一清除所有睡眠数据Record");\r
+ runtime.getDbHelper().deleteSleepData();\r
+ }\r
Config.setSleepDate(this, sleepdate);\r
Config.setSleepScore(this, si.getScore());\r
Random r = new Random();\r
return true;\r
}\r
\r
- @Nullable\r
@Override\r
public Cursor query(Uri paramUri, String[] columns, String paramString1, String[] paramArrayOfString2, String paramString2) {\r
long l;\r
\r
public void onUpgrade(SQLiteDatabase sqlite, int oldDBversion, int newDBversion) {\r
if (oldDBversion <8) {\r
- ICLogger.i("数据库升级了");\r
- sqlite.execSQL("ALTER TABLE SLEEP_STATUS ADD COLUMN SLEEP_DATE");\r
+ ICLogger.i("数据库升级 to 8 ");\r
+ sqlite.execSQL("DROP TABLE IF EXISTS MESSAGE");\r
+ sqlite.execSQL("DROP TABLE IF EXISTS EVENT_MESSAGE");\r
+ sqlite.execSQL("DROP TABLE IF EXISTS ANTIOFF");\r
+ sqlite.execSQL("DROP TABLE IF EXISTS SLEEP_RECORDS");\r
+ sqlite.execSQL("DROP TABLE IF EXISTS SLEEP_STATUS");\r
+ sqlite.execSQL("DROP TABLE IF EXISTS SLEEP_STATUS");\r
+ sqlite.execSQL("DROP TABLE IF EXISTS SIT");\r
+ sqlite.execSQL("DROP TABLE IF EXISTS ALARM_MSG_RECORDS");\r
+ /*\r
+系统对话消息表,包含微聊,系统推送文本,上传图片,上传语音等一系列消息。\r
+Pushtxt、message\r
+数据库 Message,记录所有message,包括类型(下发txt,chat msg, chat image),文件url或者文本内容。\r
+*/\r
+ sqlite.execSQL("CREATE TABLE MESSAGE(_id INTEGER PRIMARY KEY AUTOINCREMENT ,CATEGORY INTEGER ,CONTENT TEXT ,PREVIEW TEXT ,STATUS INTEGER ,IN_OR_OUT INTEGER ,CONTACT_CATEGORY INTEGER ,CONTACT_NUMBER TEXT ,SERVER_TIME TEXT ,LOCAL_TIME INTEGER ,ICON TEXT)");\r
+ //sqlite.execSQL("CREATE TABLE MESSAGE(_id INTEGER PRIMARY KEY AUTOINCREMENT ,CATEGORY INTEGER ,CONTENT TEXT ,PREVIEW TEXT ,STATUS INTEGER ,IN_OR_OUT INTEGER ,CONTACT_CATEGORY INTEGER ,CONTACT_NUMBER TEXT ,SERVER_TIME TEXT ,LOCAL_TIME INTEGER ,ICON TEXT,FILETYPE INTEGER,DATATYPE INTEGER)");\r
+\r
+\r
+\r
+//日志表格,存储开机关机,低电报警等消息。。。\r
+ sqlite.execSQL("CREATE TABLE EVENT_MESSAGE(_id INTEGER PRIMARY KEY AUTOINCREMENT , EVENT_TYPE INTEGER, EVENT_NAME TEXT, TIME TEXT )");\r
+\r
+/*\r
+脱腕检测时段AntiOff\r
+本身需要时间段的,在时间段内才进行 脱腕检测。没有设置时间段的话,或者从0:00~23:59表示持续判断脱腕检测。\r
+2个数据库,时间段和当前状态记录(包括历史记录)。\r
+*/\r
+ sqlite.execSQL("CREATE TABLE ANTIOFF(_id INTEGER PRIMARY KEY AUTOINCREMENT ,START_TIME TEXT ,END_TIME TEXT ,WEEK TEXT ,STATUS TEXT,CUR_SYS_STATUS TEXT)");\r
+ // sqlite.execSQL("CREATE TABLE ANTIOFF_RECORDS(_id INTEGER PRIMARY KEY AUTOINCREMENT ,TIME TEXT ,STATUS TEXT,CUR_SYS_STATUS TEXT)");\r
+\r
+/*\r
+睡眠\r
+根据时间段进行检测,时间段内,根据翻滚次数确认其睡眠类型。如深度睡眠或者浅睡。\r
+2个数据库翻滚次数记录,当每日睡眠情况统计计算,检测时间段记在settings里,就不放在数据库了。\r
+*/\r
+ /*每次打点的记录表*/\r
+ sqlite.execSQL("CREATE TABLE SLEEP_RECORDS(_id INTEGER PRIMARY KEY AUTOINCREMENT ,DATE TEXT, TIME TEXT ,ROLLTIMES INTEGER ,STATUS TEXT ,REM TEXT)");\r
+ /*计算后的分值,每天会在睡眠结束后计算Records获得*/\r
+ sqlite.execSQL("CREATE TABLE SLEEP_STATUS(_id INTEGER PRIMARY KEY AUTOINCREMENT ,TIME TEXT , DEEP_SLEEP INTEGER , LIGHT_SLEEP INTEGER ,SCORE INTEGER )");\r
+\r
+/*久坐\r
+根据时间段进行检测,时间段内,根据计步变化确认其是否在坐着。\r
+1个数据库 久坐检测时间段,报警时长度要求,报警记录*/\r
+ sqlite.execSQL("CREATE TABLE SIT(_id INTEGER PRIMARY KEY AUTOINCREMENT ,START_TIME TEXT ,END_TIME TEXT ,WEEK TEXT ,INTERVAL INTEGER)");\r
+\r
+\r
+ /*所有报警的记录表,包括开关机事件*/\r
+ sqlite.execSQL("CREATE TABLE ALARM_MSG_RECORDS(_id INTEGER PRIMARY KEY AUTOINCREMENT ,DATE TEXT, TIME TEXT ,ALARM TEXT )");\r
+\r
}\r
}\r
}\r
turnovertime = (turnovertimesArray.get(i).stepCount - turnovertimesArray.get(i-1).stepCount);\r
String before=turnovertimesArray.get(i-1).date;\r
String after =turnovertimesArray.get(i).date;\r
- ICLogger.i("diffBetween2DateInMinutes before "+before+", after "+after);\r
+ ICLogger.i("======diffBetween2DateInMinutes before "+before+", after "+after);\r
long minutes=TimeUtil.diffBetween2DateInMinutes(before,after);\r
if (minutes>0){\r
long avg_turnovertime= turnovertime/minutes; //平均每分钟翻滚次数\r
if ( avg_turnovertime<= DEEP_TURN_LEVEL) { //小于深度睡眠标准都属于深度睡眠\r
deepsleep_minutes += minutes;\r
- ICLogger.i("深度睡眠+="+ minutes);\r
+ ICLogger.i("======深度睡眠+="+ minutes);\r
} else if (avg_turnovertime > DEEP_TURN_LEVEL && avg_turnovertime < LIGHT_TURN_LEVEL) { //深度睡眠和浅睡标准之间属于浅睡。\r
lightsleep_minutes += minutes;\r
- ICLogger.i("浅睡+="+minutes);\r
+ ICLogger.i("======浅睡+="+minutes);\r
}else{\r
- ICLogger.i("未睡+="+minutes);\r
+ ICLogger.i("======未睡+="+minutes);\r
}\r
}else{\r
//\r
- ICLogger.i("两条睡眠记录间隔小于1分钟,skip计算"); //此处可以有效解决0点 reset步数造成的计算问题。\r
+ ICLogger.i("=====两条睡眠记录间隔小于1分钟,skip计算"); //此处可以有效解决0点 reset步数造成的计算问题。\r
}\r
\r
}\r
}\r
- ICLogger.i("深睡 = "+deepsleep_minutes+" , 浅睡 = "+lightsleep_minutes);\r
+ ICLogger.i("======深睡 = "+deepsleep_minutes+" , 浅睡 = "+lightsleep_minutes);\r
Score=(int)calculateScore(deepsleep_minutes,lightsleep_minutes,runtime);\r
\r
}\r
if (sleeptime>0 && sleeptime <= 3*60) {\r
return (sleeptime/3);\r
}else if (sleeptime >3*60 ){\r
- long tmp1= 100*(deepsleep/sleeptime); //深度睡眠/睡眠时间 百分比\r
+ long tmp1= 100*deepsleep/sleeptime; //深度睡眠/睡眠时间 百分比\r
+ ICLogger.i("======深度睡眠/睡眠时间 百分比"+tmp1);\r
if (tmp1 >=0 && tmp1 < 20){\r
return 60+tmp1;\r
}else if (tmp1 >=21 && tmp1 < 25 ){\r
Observable.timer(500L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
public void call(Long param1Long) {\r
connection.send(protocolAPIHelper.genStringMessage("login",protocolAPIHelper.getLoginMSG(paramRuntime)));\r
-\r
}\r
});\r
\r
Observable.timer(1000L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
public void call(Long param1Long) {\r
connection.send(protocolAPIHelper.genStringMessage("binding", protocolAPIHelper.getBindingMSG()));\r
-\r
}\r
});\r
startResponseCheckTimer();\r
mRuntime.setBatteryLow(true);\r
\r
if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","BatteryLow less than 15%!");\r
- send_batterylow_event_broadcast(param1Context,1);\r
- play_waning_notify(param1Context);\r
- mRuntime.setAlarmType(Runtime.AlarmType.ALARM_LOWBATTERY);\r
- //trigger AP10 报警定位\r
- connection.send(protocolAPIHelper.genStringMessage("AP10",protocolAPIHelper.getWarningMSG(mRuntime)));\r
-\r
+ if (mRuntime.isPowerConnected()==false) {\r
+ send_batterylow_event_broadcast(param1Context, 1);\r
+ play_waning_notify(param1Context);\r
+ mRuntime.setAlarmType(Runtime.AlarmType.ALARM_LOWBATTERY);\r
+ //trigger AP10 报警定位\r
+ connection.send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(mRuntime)));\r
+ }\r
} else {\r
mRuntime.setBattery(String.format("%03d",batLevel));\r
mRuntime.setHaveBatteryChange(true);\r
\r
if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","BatteryLow less than 5% !");\r
\r
- send_batterylow_event_broadcast(param1Context,1);\r
- play_waning_notify(param1Context);\r
- mRuntime.setAlarmType(Runtime.AlarmType.ALARM_LOWBATTERY);\r
- //trigger AP10 报警定位\r
- connection.send(protocolAPIHelper.genStringMessage("AP10",protocolAPIHelper.getWarningMSG(mRuntime)));\r
+ if (mRuntime.isPowerConnected()==false) {\r
+ send_batterylow_event_broadcast(param1Context, 1);\r
+\r
+ play_waning_notify(param1Context);\r
+ mRuntime.setAlarmType(Runtime.AlarmType.ALARM_LOWBATTERY);\r
+ //trigger AP10 报警定位\r
+ connection.send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(mRuntime)));\r
\r
+\r
+ }\r
}\r
\r
}else if (Intent.ACTION_BATTERY_LOW.equals(intent.getAction())) {\r
}\r
return 0;\r
}\r
-\r
+ public int deleteSleepData(){\r
+ this.cr.delete(ICContentProvider.SLEEP_RECORDS_URI, (String)null, (String[])null);\r
+ return 0;\r
+ }\r
public void insertEventMsg(String dateyyyyMMddHHmmss,int event_type,String event_name){\r
//日志表格,存储开机关机,低电报警等消息。。。\r
// sqlite.execSQL("CREATE TABLE EVENT_MESSAGE(_id INTEGER PRIMARY KEY AUTOINCREMENT , EVENT_TYPE INTEGER, EVENT_NAME TEXT, TIME TEXT )");\r
return null;\r
}\r
rollingFileAppender.setName(name);\r
- rollingFileAppender.setMaxBackupIndex(3); //最多3个备份文件\r
+ rollingFileAppender.setMaxBackupIndex(2); //最多3个备份文件\r
rollingFileAppender.setMaximumFileSize(10*1024*1024); //10M 大小\r
rollingFileAppender.setImmediateFlush(true);\r
\r
// String str2 = df2.format(date1);\r
\r
}\r
-\r
+ /**\r
+ * 根据当前日期获得是星期几\r
+ *\r
+ * @return\r
+ */\r
+ public static String getWeek() {\r
+ String time =getSystemTime4();\r
+ String Week = "";\r
+ SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");\r
+ Calendar c = Calendar.getInstance();\r
+ try {\r
+ c.setTime(format.parse(time));\r
+ } catch (ParseException e) {\r
+ e.printStackTrace();\r
+ }\r
+ if (c.get(Calendar.DAY_OF_WEEK) == 1) {\r
+ Week += "周天";\r
+ }\r
+ if (c.get(Calendar.DAY_OF_WEEK) == 2) {\r
+ Week += "周一";\r
+ }\r
+ if (c.get(Calendar.DAY_OF_WEEK) == 3) {\r
+ Week += "周二";\r
+ }\r
+ if (c.get(Calendar.DAY_OF_WEEK) == 4) {\r
+ Week += "周三";\r
+ }\r
+ if (c.get(Calendar.DAY_OF_WEEK) == 5) {\r
+ Week += "周四";\r
+ }\r
+ if (c.get(Calendar.DAY_OF_WEEK) == 6) {\r
+ Week += "周五";\r
+ }\r
+ if (c.get(Calendar.DAY_OF_WEEK) == 7) {\r
+ Week += "周六";\r
+ }\r
+ return Week;\r
+ }\r
/* 返回 2位年2位月2位日, 如2019-12-30 返回 191230*/\r
public static String getShortDate() {\r
String DEFAULT_TIME_FORMAT = "yyMMdd";\r
connection.send(genStringMessage("AP12",AP12(index,phNum1,phNum2,phNum3)));\r
\r
ArrayList<Contact> contactArray=new ArrayList<Contact>();\r
- if(Config.custom_branch_name.equals("AK")){\r
-\r
- contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos1", "07522312120"));\r
- if (!phNum1.isEmpty())\r
- contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos2", phNum1));\r
- if (!phNum2.isEmpty())\r
- contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos3", phNum2));\r
- }else {\r
+// if(Config.custom_branch_name.equals("AK")){\r
+//\r
+// contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos1", "07522312120"));\r
+// if (!phNum1.isEmpty())\r
+// contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos2", phNum1));\r
+// if (!phNum2.isEmpty())\r
+// contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos3", phNum2));\r
+// }else {\r
if (!phNum1.isEmpty())\r
contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos1", phNum1));\r
if (!phNum2.isEmpty())\r
contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos2", phNum2));\r
if (!phNum3.isEmpty())\r
contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos3", phNum3));\r
- }\r
+// }\r
runtime.getDbHelper().saveContacts(contactArray,false,false,false,false,false,true);\r
-\r
}else{\r
ICLogger.i(" BP12 format error!");\r
}\r
-#Mon Aug 10 20:58:05 CST 2020\r
-VERSION_CODE=490\r
+#Tue Aug 11 14:30:49 CST 2020\r
+VERSION_CODE=491\r