-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":464,"versionName":"2007300125","enabled":true,"outputFile":"ICSer_V464_2007300125_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V464_2007300125_release.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":466,"versionName":"2007301941","enabled":true,"outputFile":"ICSer_V466_2007301941_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V466_2007301941_release.apk","properties":{}}]
\ No newline at end of file
public class MySqlitOpenHelper extends SQLiteOpenHelper {\r
public MySqlitOpenHelper(Context paramContext) { super(paramContext, "data", null, 7); }\r
\r
- public void onCreate(SQLiteDatabase paramSQLiteDatabase) {\r
- paramSQLiteDatabase.execSQL("CREATE TABLE CONTACT(_id INTEGER PRIMARY KEY AUTOINCREMENT ,CATEGORY INTEGER ,NAME TEXT ,NUMBER TEXT ,ICON TEXT ,EXTRA TEXT)");\r
- paramSQLiteDatabase.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
- paramSQLiteDatabase.execSQL("CREATE TABLE ALARM(_id INTEGER PRIMARY KEY AUTOINCREMENT ,TIME TEXT ,WEEK TEXT ,RING TEXT ,STATUS TEXT ,NAME TEXT)");\r
- paramSQLiteDatabase.execSQL("CREATE TABLE SILENT(_id INTEGER PRIMARY KEY AUTOINCREMENT ,START_TIME TEXT ,END_TIME TEXT ,WEEK TEXT ,STATUS TEXT,CUR_SYS_STATUS TEXT)");\r
- paramSQLiteDatabase.execSQL("CREATE TABLE IKNOWLEDGE(_id INTEGER PRIMARY KEY AUTOINCREMENT ,SCORE TEXT ,AWARD TEXT)");\r
- paramSQLiteDatabase.execSQL("CREATE TABLE URLDOWNLOADPIC(_id INTEGER PRIMARY KEY AUTOINCREMENT ,URL TEXT)");\r
- paramSQLiteDatabase.execSQL("CREATE TABLE NOTICE(_id INTEGER PRIMARY KEY AUTOINCREMENT ,TIME TEXT,NAME TEXT,NUMBER TEXT,ID TEXT,CATEGORY TEXT,FREQUENCY TEXT,CONTENT TEXT)");\r
- paramSQLiteDatabase.execSQL("CREATE TABLE WEATHER(_id INTEGER PRIMARY KEY AUTOINCREMENT ,WEATHER_TYPE TEXT,MIN_TEMPERATURE TEXT,MAX_TEMPERATURE TEXT,CUR_TEMPERATURE TEXT,WEATHER_INDEX TEXT,WEATHER_INFO TEXT)");\r
- paramSQLiteDatabase.execSQL("CREATE TABLE DEVICESTATUS(_id INTEGER PRIMARY KEY AUTOINCREMENT ,IS_SILENCE TEXT,START_MONITOR TEXT,END_MONITOR TEXT,IS_ALARM INTEGER)");\r
- paramSQLiteDatabase.execSQL("CREATE TABLE DOWNLOADINFO(_id INTEGER PRIMARY KEY AUTOINCREMENT ,IMSI TEXT,TIME TEXT,NUMBER TEXT,TOTAL_NUMBER TEXT)");\r
- paramSQLiteDatabase.execSQL("CREATE TABLE STHEART_RATE(_id INTEGER PRIMARY KEY AUTOINCREMENT ,START_TIME TEXT ,END_TIME TEXT ,WEEK TEXT ,STATUS TEXT,INTERVAL TEXT)");\r
- paramSQLiteDatabase.execSQL("CREATE TABLE ANTIOFF(_id INTEGER PRIMARY KEY AUTOINCREMENT ,START_TIME TEXT ,END_TIME TEXT ,WEEK TEXT ,STATUS TEXT,CUR_SYS_STATUS TEXT)");\r
- paramSQLiteDatabase.execSQL("CREATE TABLE UNREADMSG(_id INTEGER PRIMARY KEY AUTOINCREMENT ,CATEGORY INTEGER ,ID TEXT ,COUNT INTEGER,RECVTIME INTEGER)");\r
+ public void onCreate(SQLiteDatabase sqlite) {\r
+ sqlite.execSQL("CREATE TABLE CONTACT(_id INTEGER PRIMARY KEY AUTOINCREMENT ,CATEGORY INTEGER ,NAME TEXT ,NUMBER TEXT ,ICON TEXT ,EXTRA TEXT)");\r
+ sqlite.execSQL("CREATE TABLE ALARM(_id INTEGER PRIMARY KEY AUTOINCREMENT ,TIME TEXT ,WEEK TEXT ,RING TEXT ,STATUS TEXT ,NAME TEXT)");\r
+ sqlite.execSQL("CREATE TABLE SILENT(_id INTEGER PRIMARY KEY AUTOINCREMENT ,START_TIME TEXT ,END_TIME TEXT ,WEEK TEXT ,STATUS TEXT,CUR_SYS_STATUS TEXT)");\r
+ sqlite.execSQL("CREATE TABLE IKNOWLEDGE(_id INTEGER PRIMARY KEY AUTOINCREMENT ,SCORE TEXT ,AWARD TEXT)");\r
+ sqlite.execSQL("CREATE TABLE URLDOWNLOADPIC(_id INTEGER PRIMARY KEY AUTOINCREMENT ,URL TEXT)");\r
+//提示信息表\r
+ sqlite.execSQL("CREATE TABLE NOTICE(_id INTEGER PRIMARY KEY AUTOINCREMENT ,TIME TEXT,NAME TEXT,NUMBER TEXT,ID TEXT,CATEGORY TEXT,FREQUENCY TEXT,CONTENT TEXT)");\r
+ sqlite.execSQL("CREATE TABLE WEATHER(_id INTEGER PRIMARY KEY AUTOINCREMENT ,WEATHER_TYPE TEXT,MIN_TEMPERATURE TEXT,MAX_TEMPERATURE TEXT,CUR_TEMPERATURE TEXT,WEATHER_INDEX TEXT,WEATHER_INFO TEXT)");\r
+ sqlite.execSQL("CREATE TABLE DEVICESTATUS(_id INTEGER PRIMARY KEY AUTOINCREMENT ,IS_SILENCE TEXT,START_MONITOR TEXT,END_MONITOR TEXT,IS_ALARM INTEGER)");\r
+ sqlite.execSQL("CREATE TABLE DOWNLOADINFO(_id INTEGER PRIMARY KEY AUTOINCREMENT ,IMSI TEXT,TIME TEXT,NUMBER TEXT,TOTAL_NUMBER TEXT)");\r
+ sqlite.execSQL("CREATE TABLE STHEART_RATE(_id INTEGER PRIMARY KEY AUTOINCREMENT ,START_TIME TEXT ,END_TIME TEXT ,WEEK TEXT ,STATUS TEXT,INTERVAL TEXT)");\r
+ sqlite.execSQL("CREATE TABLE UNREADMSG(_id INTEGER PRIMARY KEY AUTOINCREMENT ,CATEGORY INTEGER ,ID TEXT ,COUNT INTEGER,RECVTIME INTEGER)");\r
+\r
+\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
public void onUpgrade(SQLiteDatabase paramSQLiteDatabase, int paramInt1, int paramInt2) {\r
sendBroadcastPPGResult();\r
//因为协议中没有时间变量,所以只能实时传输,如果恰巧没有网络也只能丢弃,有时间变量的话,可以考虑通过deliver的buffer来进行缓存发送\r
if (connection.isServerConnected()) {\r
-\r
if(PPGDATA.isEmpty()){\r
String ppgd=protocolAPIHelper.getPPG_MSG(runtime.getHRS().getPPG());\r
String bloodd=protocolAPIHelper.getBlood_MSG( runtime.getHRS().getBPH(), runtime.getHRS().getBPL());\r
connection.send(protocolAPIHelper.genStringMessage("ppg", ppgd));\r
connection.send(protocolAPIHelper.genStringMessage("blood", bloodd));\r
connection.send(protocolAPIHelper.genStringMessage("oxygen", oxd));\r
-\r
}else {\r
connection.send(protocolAPIHelper.genStringMessage("APHT", PPGDATA));\r
ICLogger.i("Send PPG " + PPGDATA);\r
}\r
-\r
-\r
ICLogger.i("Send PPG " + PPGDATA);\r
} else {\r
ICLogger.i("Skip PPG " + PPGDATA);\r
\r
public static String getCMDStringMD5(String src){\r
\r
- if (src.isEmpty()) {\r
+ if (src==null || src.isEmpty()) {\r
return "";\r
}\r
MessageDigest md5 = null;\r
result += temp;\r
}\r
return result;\r
- } catch (NoSuchAlgorithmException e) {\r
+ } catch (Exception e) {\r
e.printStackTrace();\r
}\r
return "";\r
import com.enqualcomm.support.bean.Contact;\r
import com.enqualcomm.support.service.AudioService;\r
import com.enqualcomm.support.service.HeartRateManager;\r
+import com.ic.protocols.protocolAPIHelper;\r
\r
import java.util.concurrent.TimeUnit;\r
\r
import static com.enqualcomm.support.Constants.KEY_TEMP_BODY;\r
import static com.enqualcomm.support.Constants.KEY_TEMP_WRIST;\r
import static com.enqualcomm.support.Constants.RESUME_ACTION;\r
-import static com.enqualcomm.support.Constants.SOS_ACTION;\r
-import static com.enqualcomm.support.Constants.STEP_COUNT_ALARM_ACTION;\r
+\r
import static com.enqualcomm.support.bean.Content.CONTACT_CATEGORY_GROUP;\r
-import static com.ic.protocols.protocolAPIHelper.genStringMessage;\r
-import static com.ic.protocols.protocolAPIHelper.getTemperatureMSG;\r
+\r
\r
\r
public class ProcessReceiver extends BroadcastReceiver {\r
stringBuilder.append("action==");\r
stringBuilder.append(str);\r
ICLogger.i(stringBuilder.toString());\r
+\r
+ if (CoreService.getInstance()==null)\r
+ {\r
+ ICLogger.i("CoreService is null skip deal with this message! "+str);\r
+ paramContext.startService(new Intent(paramContext,CoreService.class));// protocol service\r
+ return ;\r
+ }\r
if (RESUME_ACTION.equals(str)) {\r
SharPreferenceUtil.setPrefBoolean(paramContext, "key_is_resume", paramIntent.getBooleanExtra("is_resume", false));\r
return;\r
}else if (ACTION_TEMP_RESULT.equals(str)) {\r
double wrist_temp=paramIntent.getDoubleExtra(KEY_TEMP_WRIST,0.0f);\r
double body_temp=paramIntent.getDoubleExtra(KEY_TEMP_BODY,0.0f);\r
- String temperatureMsg=getTemperatureMSG(wrist_temp,body_temp);\r
+ String temperatureMsg= protocolAPIHelper.getTemperatureMSG(wrist_temp,body_temp);\r
ICLogger.i("发送体温测量值 "+temperatureMsg);\r
Deliver.sendLocationMSG(temperatureMsg);\r
\r
\r
public class protocolAPIHelper {\r
\r
- private protocol_jiai protocoljiai_handler=null;\r
- private protocol_beehome protocolbeehome_handler=null;\r
- private protocol_ic protocolic_handler=null;\r
- private protocol_fzd protocolfzd_handler=null;\r
+ private static protocol_jiai protocoljiai_handler=null;\r
+ private static protocol_beehome protocolbeehome_handler=null;\r
+ private static protocol_ic protocolic_handler=null;\r
+ private static protocol_fzd protocolfzd_handler=null;\r
\r
public protocolAPIHelper(NettyConnection connect,Runtime runtime) {\r
ICLogger.i("init Protocol "+Config.getProtocolNumber());\r
if (protocolfzd_handler==null)\r
protocolfzd_handler=new protocol_fzd(connect,runtime);\r
}\r
+\r
+ private static boolean is_protocol_not_Initialled(){\r
+ return (protocolbeehome_handler==null || protocoljiai_handler == null || protocolic_handler==null|| protocolfzd_handler==null);\r
+\r
+ }\r
/*\r
返回true 表示 cmd 全部解析成功\r
返回false表示 cmd至少有一条解析失败,失败的数据归入buffer,下一次识别接着使用\r
每个字符串如果发现 #,却又没有Header,“IW”则会被丢弃\r
*/\r
public boolean parserCmd(byte[] bytes) {\r
+ if (is_protocol_not_Initialled()) return false;\r
switch(Config.protocol_no)\r
{\r
case Config.PROTOCOL_JIAI:\r
\r
\r
public static String isCmdStr(String msg){\r
-\r
+ if (is_protocol_not_Initialled()) return "";\r
String ret="";\r
switch(Config.protocol_no)\r
{\r
}\r
\r
public static String getBindingMSG(){\r
+ if (is_protocol_not_Initialled()) return "";\r
String ret="";\r
switch(Config.protocol_no)\r
{\r
}\r
\r
public static String getTemperatureMSG(double temp_adusted,double body_temp){\r
+ if (is_protocol_not_Initialled()) return "";\r
String ret="";\r
switch(Config.protocol_no)\r
{\r
return ret;\r
}\r
public static String getWarningMSG(Runtime runtime){\r
+ if (is_protocol_not_Initialled()) return "";\r
String ret="";\r
switch(Config.protocol_no)\r
{\r
}\r
\r
public static String getLoginMSG(Runtime runtime){\r
+ if (is_protocol_not_Initialled()) return "";\r
String ret="";\r
switch(Config.protocol_no)\r
{\r
}\r
\r
public static String getHeartbeatMSG(Runtime runtime){\r
+ if (is_protocol_not_Initialled()) return "";\r
String ret="";\r
switch(Config.protocol_no)\r
{\r
}\r
\r
public static String getGPSLocationMSG(Runtime runtime){\r
+ if (is_protocol_not_Initialled()) return "";\r
String ret="";\r
switch(Config.protocol_no)\r
{\r
return ret;\r
}\r
public static String getLBSLocationMSG(Runtime runtime){\r
+ if (is_protocol_not_Initialled()) return "";\r
String ret="";\r
switch(Config.protocol_no)\r
{\r
\r
public static byte[] getVoicePacketItem(String packetTime,int count,int index,int datalen,byte[] amrdata){\r
byte[] ret=null;\r
+ if (is_protocol_not_Initialled()) return null;\r
switch(Config.protocol_no)\r
{\r
case Config.PROTOCOL_JIAI:\r
return ret;\r
}\r
public static String getPPG_ECG_MSG(Runtime runtime){\r
-\r
+ if (is_protocol_not_Initialled()) return "";\r
String ret="";\r
switch(Config.protocol_no)\r
{\r
return ret;\r
}\r
public static String getPPG_ECG_MSG(int ppg,int bph,int bpl){\r
-\r
+ if (is_protocol_not_Initialled()) return "";\r
String ret="";\r
switch(Config.protocol_no)\r
{\r
}\r
\r
public static String getBlood_MSG(int pbh, int pbl){\r
+ if (is_protocol_not_Initialled()) return "";\r
String ret="";\r
switch(Config.protocol_no)\r
{\r
}\r
\r
public static String getOxygen_MSG(int ox){\r
+ if (is_protocol_not_Initialled()) return "";\r
String ret="";\r
switch(Config.protocol_no)\r
{\r
return ret;\r
}\r
public static String getPPG_MSG(int ppg){\r
+ if (is_protocol_not_Initialled()) return "";\r
String ret="";\r
switch(Config.protocol_no)\r
{\r
return ret;\r
}\r
public static String getPPG_ECG_MSG(int ppg,int bph,int bpl,int spo2){\r
+ if (is_protocol_not_Initialled()) return "";\r
\r
String ret="";\r
switch(Config.protocol_no)\r
-#Thu Jul 30 01:25:40 CST 2020\r
-VERSION_CODE=464\r
+#Thu Jul 30 19:41:32 CST 2020\r
+VERSION_CODE=466\r