-package com.enqualcomm.support;\r
-\r
-import android.content.Context;\r
-import android.provider.Settings;\r
-import android.text.TextUtils;\r
-\r
-import com.enqualcomm.support.bean.ICLocation;\r
-import com.enqualcomm.support.bean.Runtime;\r
-import com.enqualcomm.support.utils.ICAudioManager;\r
-import com.enqualcomm.support.utils.ICLogger;\r
-import com.enqualcomm.support.utils.SharPreferenceUtil;\r
-import com.enqualcomm.support.utils.TimeUtil;\r
-import com.enqualcomm.support.utils.Util;\r
-import com.enqualcomm.support.utils.VibrateUtil;\r
-import com.ic.jni.ICJniUtils;\r
-import com.ic.protocols.protocolAPIHelper;\r
-\r
-import org.json.JSONException;\r
-import org.json.JSONStringer;\r
-\r
-import java.util.HashMap;\r
-\r
-import static com.enqualcomm.support.utils.Util.getSystemProperties;\r
-\r
-public class Config {\r
- public static final boolean LOG_TOFILE=true;\r
- public static int antioff = 0;\r
- public static int heart_rate = 0;\r
- private static String json;\r
- public static int defaultHeartbeatCycle=5;\r
- public static int sw_release_no = -1;\r
-\r
-\r
- //如果重试都失败,则丢弃命令不进行盲点续传\r
- public static boolean discard_cmd_after_retryfailed=true;\r
-\r
- public static boolean forceMoveCheck=true;\r
- public static boolean forceWearCheck=true;\r
-\r
- private static final String KEYDurationOfVibration = "DurationVib";\r
- private static final String KeyMasterVolume = "MasterVolume";\r
-\r
- public static final String DefaultLogFtpServer="icfota.snicker.com.cn";\r
- public static final String DefaultLogFtpUser="ftpuser";\r
- public static final String DefaultLogFtpPWD="iclog";\r
-\r
-\r
- public static final String DefaultWiFiSSID="Xplay6";\r
- public static final String DefaultWiFiPWD="87654321";\r
- public static final String DefaultWiFiEncryptType="psk";\r
-\r
- public static final int GPSLocationTimeoutInSeconds=50;\r
- public static final int WiFiLocationTimeoutInSeconds=12;\r
-\r
- public static String c43_branch_name="none";\r
- public static String custom_name="none";\r
-\r
- //配置是否广播提示框信息给外部应用显示\r
- public static boolean noBroadCastSMSNotify=false;\r
- public static boolean noBroadCastPushTxtNotify=false;\r
-\r
-\r
- //protocol内部Dialog配置,true表示用外部提示窗,false表示用协议内部提示窗\r
- public static boolean noSMSNotifyDialog=false;\r
- public static boolean noPushTxtNotifyDialog=false;\r
- public static boolean noVoiceNotifyDialog=false;\r
-\r
- //是否SOS拨号的开关,false表示只发送系统sosalarm,不发起SOS拨号\r
- public static boolean SOSNoNeedDial=false;\r
-\r
- //ic68只有体温没有腕温,它开启代表原来的腕温函数取出的就是体温,不需要再进行换算了。\r
- public static boolean disableWristTemp=false;\r
- //配置是否有温度传感器\r
- public static boolean noTempSensor=false;\r
- //配置是否有心率传感器\r
- public static boolean noPPGSensor=false;\r
- //配置脱腕报警是否需要弹出脱腕提示 默认关闭\r
- public static boolean needBroadcastAntiAlarm=false;\r
- //配置脱腕报警是否需要弹出剪断提示 默认开启\r
- public static boolean needBroadcastCutoffAlarm=true;\r
-\r
-\r
- //定位是否使用wifi的配置。\r
- public static boolean disableWiFiScan=false;\r
-\r
- public static int BLEScanProtocol=0; /** 0 代表扫描beacon后 自行判断是否在指定区域,需要协议绑定beacon地址。\r
- * 1 代表扫描beacon后,直接把扫描结果上报即可。\r
- **/\r
-\r
- public static boolean UsePolingCheckWeared=false;\r
-\r
- static {\r
- disableWiFiScan=Util.getSystemProperties("persist.sys.disableWiFiLocation","false").equals("true");\r
- disableWristTemp=Util.getSystemProperties("persist.sys.disableWristTemp","false").equals("true");\r
- BLEScanProtocol=Util.getSystemPropertiesInt("persist.sys.BLEScanProtocol",0);\r
- UsePolingCheckWeared=Util.getSystemProperties("persist.sys.PolingCheckAnti","false").equals("true");\r
- }\r
- \r
- private static String make() {\r
- try {\r
- return (new JSONStringer()).object()\r
- .key("cmd").value("Init")\r
- .key("sw_version").value("eiot_V1.0.0")\r
- .key("protocol_version").value("2.0")\r
- .key("product").value(2L)\r
- .key("swReleaseNo").value(sw_release_no)\r
- .endObject().toString();\r
- } catch (JSONException jSONException) {\r
- jSONException.printStackTrace();\r
- return "";\r
- } \r
- }\r
- \r
- public static String toJson() {\r
- if (TextUtils.isEmpty(json))\r
- json = make(); \r
- return json;\r
- }\r
-\r
-\r
- public final static boolean isL03Tracker=getIsL03tracker();\r
- public final static boolean upload_logs_via_ftp=false;\r
- final static String KeyProtocolServerIP="ProtocolServerIP";\r
- final static String KeyProtocolServerHOST="ProtocolServerHOST";\r
- final static String KeyProtocolServerPort="ProtoclServerPort";;\r
- final static String KeyLogServerIP="LogServerIP";\r
- final static String KeyLogServerPort="LogServerPort";\r
- final static String KeyFotaServerUrl="FotaServerUrl";\r
-\r
-\r
- final static String KeyPpgTestCycle="PPGTestCycle";\r
- final static String KeyLocationCycle="LocationCycle";\r
- final static String KeyLocationMode="LocationMode";;\r
-\r
- final static String KeyAlarmCycle="HeartBeatCycle";\r
-\r
- final static String KeyContactsList="ContactsList";\r
- final static String KeySOSNumbersList="SOSNumbersList";\r
-\r
- final static String KeyIMEI = "persist.sys.protocol_IMEI";\r
- public final static String KeyQRURIFILE = "persist.sys.qrUriFile";\r
-\r
- final static String KeyPractiseState = "persist.sys.practising";\r
-\r
- final static String KeyHeartBeatCycle="ServerHeartBeatCycle";\r
-\r
-\r
- final static String KeyLogFtpServer="FtpServerHost";\r
- final static String KeyLogFtpUser="FtpServerUser";\r
- final static String KeyLogFtpPWD="FtpServerPWD";\r
-\r
-\r
- final static String KeyWiFiSSID="WiFiSSID";\r
- final static String KeyWiFiPasswd="WiFiPWD";\r
- final static String KeyWiFiEncyptType="WiFiEncryptType";\r
-\r
- final static String KeySMSPassword="SMSPWD";\r
- final static String DefaultSMSPassword="non";\r
-\r
- final static String KeyTempTestCycle="TempTestCycle";\r
-\r
-\r
- final static String KeyPPGadust="KeyPPGAdjust";\r
- final static String KeyBPHadust="KeyBPHAdjust";\r
- final static String KeyBPLadust="KeyBPLAdjust";\r
- final static String KeySPo2adust="KeySPo2Adjust";\r
-\r
- final static String KeyPolingCycleCheckAnti="PolingCycleCheckAnti";\r
- final static String KeyBleScanCycle="BleScanCycle";\r
-\r
- final static String KeyLastUnReadMessage="UnreadMsg";\r
-\r
-\r
- public static void setDurationOfVibration(Context context, int cycle){\r
- SharPreferenceUtil.setPrefInt(context,KEYDurationOfVibration,cycle);\r
- }\r
-\r
- public static int getDurationOfVibration(Context context){\r
- return SharPreferenceUtil.getPrefInt(context,KEYDurationOfVibration,1);\r
- }\r
-\r
- public static void setMasterVolume(Context context, int cycle){\r
- SharPreferenceUtil.setPrefInt(context,KeyMasterVolume,cycle);\r
- }\r
-\r
- public static int getMasterVolume(Context context){\r
- return SharPreferenceUtil.getPrefInt(context,KeyMasterVolume,15);\r
- }\r
-\r
-\r
- public static void setCheckAntiPolingCycle(Context context, int cycle){\r
- SharPreferenceUtil.setPrefInt(context,KeyPolingCycleCheckAnti,cycle);\r
- }\r
-\r
- public static int getCheckAntiPolingCycle(Context context){\r
- return SharPreferenceUtil.getPrefInt(context,KeyPolingCycleCheckAnti,0);\r
- }\r
-\r
- public static void setBleScanCycle(Context context, int cycle){\r
- SharPreferenceUtil.setPrefInt(context,KeyBleScanCycle,cycle);\r
- }\r
-\r
- public static int getBleScanCycle(Context context){\r
- return SharPreferenceUtil.getPrefInt(context,KeyBleScanCycle,0);\r
- }\r
-\r
- public static String getLastUnReadMessage(Context context){\r
- return SharPreferenceUtil.getPrefString(context,KeyLastUnReadMessage,"");\r
- }\r
-\r
- public static void setLastUnReadMessage(Context context,String smsPWD){\r
- SharPreferenceUtil.setPrefString(context,KeyLastUnReadMessage,smsPWD);\r
- }\r
-\r
- public static String getSMSPwd(Context context){\r
- return SharPreferenceUtil.getPrefString(context,KeySMSPassword,DefaultSMSPassword);\r
- }\r
-\r
- public static void setSMSPwd(Context context,String smsPWD){\r
- SharPreferenceUtil.setPrefString(context,KeySMSPassword,smsPWD);\r
- }\r
- public static boolean getIsL03tracker(){\r
- boolean ret=getSystemProperties("persist.sys.isL03tracker").toLowerCase().equals("true");\r
- return ret;\r
- }\r
- public static String getWiFiSSID(Context context){\r
- return SharPreferenceUtil.getPrefString(context,KeyWiFiSSID,DefaultWiFiSSID);\r
- }\r
-\r
- public static void setWiFiSSID(Context context,String ssid){\r
- SharPreferenceUtil.setPrefString(context,KeyWiFiSSID,ssid);\r
- }\r
-\r
- public static String getWiFiPasswd(Context context){\r
- return SharPreferenceUtil.getPrefString(context,KeyWiFiPasswd,DefaultWiFiPWD);\r
- }\r
-\r
- public static void setWiFiPasswd(Context context,String pwd){\r
- SharPreferenceUtil.setPrefString(context,KeyWiFiPasswd,pwd);\r
- }\r
-\r
- public static String getWiFiEncryptType(Context context){\r
- return SharPreferenceUtil.getPrefString(context,KeyWiFiEncyptType,DefaultWiFiEncryptType);\r
- }\r
-\r
- public static void setWiFiEncryptType(Context context,String type){\r
- SharPreferenceUtil.setPrefString(context,KeyWiFiEncyptType,type);\r
- }\r
-\r
- public static String getFotaServerUrl(Context context){\r
- return SharPreferenceUtil.getPrefString(context,KeyFotaServerUrl,"");\r
- }\r
-\r
- public static void setFotaServerUrl(Context context,String url){\r
- SharPreferenceUtil.setPrefString(context,KeyFotaServerUrl,url);\r
- }\r
- public static String getFtpUser(Context context){\r
- return SharPreferenceUtil.getPrefString(context,KeyLogFtpUser,DefaultLogFtpUser);\r
- }\r
-\r
- public static void setFtpUser(Context context,String user){\r
- SharPreferenceUtil.setPrefString(context,KeyLogFtpUser,user);\r
- }\r
-\r
- public static String getFtpServer(Context context){\r
- return SharPreferenceUtil.getPrefString(context,KeyLogFtpServer,DefaultLogFtpServer);\r
- }\r
-\r
- public static void setFtpServer(Context context,String host){\r
- SharPreferenceUtil.setPrefString(context,KeyLogFtpServer,host);\r
- }\r
-\r
- public static String getFtpPWD(Context context){\r
- return SharPreferenceUtil.getPrefString(context,KeyLogFtpPWD,DefaultLogFtpPWD);\r
- }\r
- public static void setFtpPWD(Context context,String PWD){\r
- SharPreferenceUtil.setPrefString(context,KeyLogFtpPWD,PWD);\r
- }\r
-\r
- public static void setAlarmCycle(Context context, int cycle){\r
- SharPreferenceUtil.setPrefInt(context,KeyAlarmCycle,cycle);\r
- }\r
-\r
- //默认3分钟,刚刚wakeup的时候1分钟\r
- public static int getAlarmCycle(Context context){\r
- return SharPreferenceUtil.getPrefInt(context,KeyAlarmCycle,3);\r
- }\r
-\r
- public static void setProtocolServerPort(Context context, int serverPort){\r
-// SharPreferenceUtil.setPrefString(context,KeyProtocolServerIP,serverIP);\r
- SharPreferenceUtil.setPrefInt(context,KeyProtocolServerPort,serverPort);\r
- }\r
-\r
- public static void setProtocolServerHost(Context context,String host){\r
- SharPreferenceUtil.setPrefString(context,KeyProtocolServerHOST,host);\r
- }\r
- //public static String getProtocolServerIP(Context context){\r
- // return SharPreferenceUtil.getPrefString(context,KeyProtocolServerIP,"118.178.155.223");\r
- // }\r
-\r
- public static void loadModCycleSettings(Runtime runtime){\r
- Context context=runtime.getContextProxy().context;\r
- ICLogger.i("current Cycles PPG "+ runtime.getPpgTestCycle()+" , LocationCycle "+runtime.getLocationInstance().getLocation_cycle()+" LocationMode "+runtime.getLocationInstance().getWorkingMod());\r
- runtime.setPpgTestCycle(Config.getPPGTestCycle(context));\r
- runtime.getLocationInstance().setLocation_cycle(Config.getLocationCycle(context));\r
- runtime.getLocationInstance().setWorkingMod(Config.getLocationMode(context));\r
- ICLogger.i("current Cycles PPG "+ runtime.getPpgTestCycle()+" , LocationCycle "+runtime.getLocationInstance().getLocation_cycle()+" LocationMode "+runtime.getLocationInstance().getWorkingMod());\r
-\r
- int mastervolume = getMasterVolume(context);\r
- ICAudioManager.setMasterVolumn(context,mastervolume);\r
-\r
- int duration= getDurationOfVibration(context);\r
- VibrateUtil.setVibPattern(duration*1000);\r
-\r
- }\r
-\r
- public static void loadHearBeatSetting(Runtime runtime){\r
- runtime.setHeartBeatCycle(Config.getHeartBeatCycle(runtime.getContextProxy().context));\r
- }\r
- public static void loadServerSettings(Runtime runtime){\r
- runtime.setHostAndPort(Config.getProtocolServerHost(runtime.getContextProxy().context),Config.getProtocolServerPort(runtime.getContextProxy().context));\r
- }\r
-\r
- public static void setIMEI(Context context, String imei){\r
- Util.setSystemProperties(KeyIMEI,imei);\r
- }\r
-\r
- public static String getIMEI(Context context){\r
- return Util.getSystemProperties(KeyIMEI,"");\r
- }\r
-\r
- public static String getProtocolServerHost(Context context){\r
- String host;\r
- host= SharPreferenceUtil.getPrefString(context,KeyProtocolServerHOST,protocolAPIHelper.getDefaultServerIP());\r
- return host;\r
- }\r
-\r
-\r
- public static int getProtocolServerPort(Context context){\r
- int port;\r
- port= SharPreferenceUtil.getPrefInt(context,KeyProtocolServerPort,protocolAPIHelper.getDefaultServerPort());\r
- return port;\r
- }\r
-\r
- public static void setConfigInitFlag(Context context,int flag){\r
- SharPreferenceUtil.setPrefInt(context,"ConfigInitFlag",flag);\r
- }\r
-\r
- public static int getConfigInitFlag(Context context){\r
- return SharPreferenceUtil.getPrefInt(context,"ConfigInitFlag",0);\r
- }\r
- public static void setLogServerIP(Context context,String serverIP,int serverPort){\r
-\r
- SharPreferenceUtil.setPrefString(context,KeyLogServerIP,serverIP);\r
- SharPreferenceUtil.setPrefInt(context,KeyLogServerPort,serverPort);\r
-\r
- }\r
- public static String getLogServerIP(Context context){\r
- return SharPreferenceUtil.getPrefString(context,KeyLogServerIP,"http://icfota.snicker.com.cn:8089/UploadFile.jsp");\r
- }\r
-\r
- public static int getLogServerPort(Context context){\r
- return SharPreferenceUtil.getPrefInt(context,KeyLogServerPort,8089);\r
- }\r
-\r
-\r
- public static void setPPGTestCycle(Context context,int cycle){\r
- SharPreferenceUtil.setPrefInt(context,KeyPpgTestCycle,cycle);\r
- }\r
-\r
- public static int getPPGTestCycle(Context context){\r
- return SharPreferenceUtil.getPrefInt(context,KeyPpgTestCycle,0);\r
- }\r
-\r
-\r
- public static int getHeartBeatCycle(Context context){\r
- return SharPreferenceUtil.getPrefInt(context,KeyHeartBeatCycle,5);\r
- }\r
-\r
- public static void setHeartBeatCycle(Context context,int cycle){\r
- SharPreferenceUtil.setPrefInt(context,KeyHeartBeatCycle,cycle);\r
- }\r
- public static void setLocationCycle(Context context,int cycle_second){\r
- SharPreferenceUtil.setPrefInt(context,KeyLocationCycle,cycle_second);\r
- }\r
-\r
- public static int getLocationCycle(Context context){\r
- return SharPreferenceUtil.getPrefInt(context,KeyLocationCycle,900);\r
- }\r
-\r
- public static void setLocationMode(Context context,int mode){\r
- ICLogger.i("setLocationMode "+mode);\r
- SharPreferenceUtil.setPrefInt(context,KeyLocationMode,mode);\r
- }\r
-\r
-\r
- public static int getLocationMode(Context context){\r
- return SharPreferenceUtil.getPrefInt(context,KeyLocationMode, ICLocation.NORMAL_MOD);\r
- }\r
-\r
- private static final String KeyBootUpDate = "bootupdate";\r
- public static boolean logBootDate(Context context){\r
- //如果时间和最后一次时间不同,则重置,否则启动次数+1\r
- if (isFirstBootToday(context)) {\r
- SharPreferenceUtil.setPrefString(context, KeyBootUpDate, TimeUtil.getSystemTime4());\r
- return true;\r
- }else{\r
- return false;\r
- }\r
- }\r
-\r
- private static String getLastBootupDate(Context context){\r
- return SharPreferenceUtil.getPrefString(context,KeyBootUpDate,"");\r
- }\r
- private static boolean isFirstBootToday(Context context){\r
- //第一次启动记录的日期,当前日期只要相同,就认为有启动过。\r
- //如果手表一直没有重启过,则每次resetStepCount的时候把启动时间更新到当天,\r
- //从而解决第二天重启就会被重置的问题!\r
- String currentDate=TimeUtil.getSystemTime4();\r
- String lastDate=getLastBootupDate(context);\r
- boolean ret=false;\r
- if (currentDate.equals(lastDate)) {\r
- ret= false;\r
- }else\r
- {\r
- ret= true;\r
- }\r
- ICLogger.i("Current BootDate="+currentDate+", Last BootDate="+lastDate+", ret="+ret);\r
- return ret;\r
- }\r
-\r
- //收到语音微聊广播消息给外部窗口\r
- public static boolean do_broadCast_message=false;\r
-\r
- //每次心跳时都检测逃逸并报警\r
- public static boolean needAllwaysAlarmFenceOut=false;\r
- //每次心跳时都检测剪断并报警,只报警\r
- public static boolean needAllwaysAlarmCutOff=false;\r
-\r
- //体温非正常报警\r
- public static boolean needTemperature_abnormal_alarm=false;\r
- public static boolean A9_noBroadCastActionStrip=false;\r
- public static boolean C5_noBroadCastActionStrip=false;\r
- public static boolean L004_BroadCastActionStrip=false;\r
-\r
- //停止系统NTP时钟同步标志\r
- public static boolean disable_ntp_server=false;\r
-\r
- //需要系统发送已阅读消息的标志\r
- public static boolean noPushTxtReadReply=true;\r
- //蓝牙定位扫描 协议0模式,扫到beacon信标时,如果属于第一次扫到的进入状态(解除逃逸状态),发送服务器的标志位,主要由于C5客户只要逃逸,不要解除逃逸消息。\r
- public static boolean noBLE_RelaseEscapeAlarm=true;\r
-\r
- public static void enable_NTP_Server(Context context,boolean enable){\r
- try {\r
- int autotime = Settings.Global.getInt(context.getContentResolver(),Settings.Global.AUTO_TIME);\r
- int autotimezone = Settings.Global.getInt(context.getContentResolver(),Settings.Global.AUTO_TIME_ZONE);\r
-\r
- ICLogger.i("get NTP Settings AutoTime "+autotime+" AutoTimeZone "+autotimezone);\r
-\r
- if(enable)\r
- {\r
- Settings.Global.putInt(context.getContentResolver(), Settings.Global.AUTO_TIME_ZONE, 1);\r
- Settings.Global.putInt(context.getContentResolver(), Settings.Global.AUTO_TIME, 1);\r
- }else {\r
- Settings.Global.putInt(context.getContentResolver(), Settings.Global.AUTO_TIME_ZONE, 0);\r
- Settings.Global.putInt(context.getContentResolver(), Settings.Global.AUTO_TIME, 0);\r
- }\r
- autotime = Settings.Global.getInt(context.getContentResolver(),Settings.Global.AUTO_TIME);\r
- autotimezone = Settings.Global.getInt(context.getContentResolver(),Settings.Global.AUTO_TIME_ZONE);\r
- ICLogger.i("get NTP Settings AutoTime "+autotime+" AutoTimeZone "+autotimezone);\r
- } catch (Settings.SettingNotFoundException e) {\r
- e.printStackTrace();\r
- ICLogger.e(e.getMessage(),e);\r
- }\r
- }\r
- public static void LoadMessageConfigs(){\r
-\r
- String tmp=Util.getSystemProperties("persist.sys.doBroadcastMSG");\r
- boolean ret=false;\r
- if (tmp.equals("true"))\r
- ret=true;\r
-\r
- do_broadCast_message = ret;\r
-\r
- noPPGSensor=(ICJniUtils.isPPGavailable()==0);\r
- noTempSensor=(ICJniUtils.isTemperatureDevAvailable()==0);\r
-\r
- //默认关闭NTP\r
- disable_ntp_server=Util.getSystemProperties("persist.sys.disableNTP","false").equals("true");\r
-\r
- c43_branch_name=Util.getSystemProperties("persist.sys.c43.branch");\r
-\r
- if ((c43_branch_name.equals("l03")) ||(c43_branch_name.equals("l05"))){\r
- noPushTxtNotifyDialog=true;\r
- noSMSNotifyDialog=true;\r
- noVoiceNotifyDialog=true;\r
- noTempSensor=true;\r
- if (c43_branch_name.equals("l05")) {\r
- SOSNoNeedDial=true;//采用新写的SOS,协议只需要发送消息,无需控制拨号。\r
- noPPGSensor=false;\r
- }else{\r
- noPPGSensor=true;\r
- }\r
- }\r
- custom_name=Util.getSystemProperties("persist.sys.customname");\r
- ICLogger.i("get CUSTOMNAME "+custom_name);\r
- if (custom_name.equals("H88")||custom_name.equals("H88A") ){\r
- noPushTxtNotifyDialog=true;\r
- noSMSNotifyDialog=false;\r
- noVoiceNotifyDialog=false;\r
- noPPGSensor=false;\r
- noTempSensor=false;\r
- needBroadcastAntiAlarm=false;\r
- }else if ((custom_name.equals("AK")) ){\r
- noPushTxtNotifyDialog=true;\r
- noSMSNotifyDialog=true;\r
- noVoiceNotifyDialog=true;\r
- noPPGSensor=false;\r
- noTempSensor=true;\r
- SOSNoNeedDial=true; //采用新写的SOS,协议只需要发送消息,无需控制拨号。\r
- }else if ((custom_name.equals("YT")) ){\r
- noPushTxtNotifyDialog=false;\r
- noSMSNotifyDialog=false;\r
- noVoiceNotifyDialog=false;\r
- noPPGSensor=false;\r
- noTempSensor=true;\r
- }else if ((custom_name.equals("l004")) ) {\r
- noPushTxtNotifyDialog=true;\r
- noSMSNotifyDialog=true;\r
- noVoiceNotifyDialog=true;\r
- needBroadcastAntiAlarm=false;\r
- needBroadcastCutoffAlarm=true;\r
- needAllwaysAlarmCutOff=false;\r
- needAllwaysAlarmFenceOut=false;\r
- needTemperature_abnormal_alarm=false;\r
- noPPGSensor=false;\r
- noTempSensor=false;\r
- L004_BroadCastActionStrip=true;\r
- }else if (custom_name.equals("YQ") ||custom_name.equals("YQ_EN") ) { //A9-YQ\r
- noPushTxtNotifyDialog=false;\r
- noSMSNotifyDialog=true;\r
- noVoiceNotifyDialog=true;\r
- noBroadCastPushTxtNotify=true;\r
- noBroadCastSMSNotify=true;\r
- needBroadcastAntiAlarm=false;\r
- needBroadcastCutoffAlarm=true;\r
- needAllwaysAlarmCutOff=true;\r
- needAllwaysAlarmFenceOut=true;\r
- needTemperature_abnormal_alarm=true;\r
- noPushTxtReadReply=false;//A9需要阅读反馈\r
- noPPGSensor=false;\r
- noTempSensor=false;\r
- A9_noBroadCastActionStrip=true;\r
- }else if (custom_name.equals("SGL"))\r
- {\r
- noPushTxtNotifyDialog=false;\r
- noSMSNotifyDialog=false;\r
- noVoiceNotifyDialog=true;\r
- needBroadcastAntiAlarm=true;\r
- needBroadcastCutoffAlarm=true;\r
- needAllwaysAlarmCutOff=true;\r
- needAllwaysAlarmFenceOut=false;\r
- needTemperature_abnormal_alarm=false;\r
- noPPGSensor=true;\r
- noTempSensor=true;\r
- C5_noBroadCastActionStrip=true;\r
- }else if(custom_name.equals("L02")){\r
- noPushTxtReadReply=false;//即爱需要阅读反馈\r
- }else{\r
- noBroadCastPushTxtNotify=true;\r
- }\r
-\r
-\r
- }\r
-\r
- public static void loadTemperatureSettings(Runtime runtime){\r
- runtime.temp_test_Cycle = SharPreferenceUtil.getPrefInt(runtime.getContextProxy().context, KeyTempTestCycle, 60*60);\r
- }\r
-\r
- public static void setTemperatureTestCycle(Runtime runtime,int cycle_seconds) {\r
- SharPreferenceUtil.setPrefInt(runtime.getContextProxy().context,KeyTempTestCycle,cycle_seconds);\r
- loadTemperatureSettings(runtime);\r
- }\r
- public static boolean isUsingCustomServer=false;\r
-\r
- public static void setCustomServer(Context context,boolean isusingCutomerServer,String serverip,int serverport) {\r
-\r
- if (isusingCutomerServer)\r
- Util.setSystemProperties("persist.sys.UsingCustomServer","true");\r
- else\r
- Util.setSystemProperties("persist.sys.UsingCustomServer","false");\r
-\r
-\r
- Util.setSystemProperties("persist.sys.customserverip",serverip);\r
- Util.setSystemProperties("persist.sys.customserverport",String.valueOf(serverport));\r
- setProtocolServerHost(context,serverip);\r
- setProtocolServerPort(context,serverport);\r
-\r
- loadCustomServerAddr(context);\r
-\r
- }\r
- public static void loadCustomServerAddr(Context context){\r
- String tmp=Util.getSystemProperties("persist.sys.UsingCustomServer");\r
- boolean ret=false;\r
- if (tmp.equals("true"))\r
- ret=true;\r
-\r
- isUsingCustomServer=ret;\r
-\r
- String serverip="";\r
- int serverport=0;\r
- if(isUsingCustomServer){\r
- serverip= Util.getSystemProperties("persist.sys.customserverip");\r
- serverport= Integer.valueOf(Util.getSystemProperties("persist.sys.customserverport"));\r
- setProtocolServerHost(context,serverip);\r
- setProtocolServerPort(context,serverport);\r
-\r
- }else{\r
- setProtocolServerHost(context, protocolAPIHelper.getDefaultServerIP());\r
- setProtocolServerPort(context,protocolAPIHelper.getDefaultServerPort());\r
- }\r
- ICLogger.i("current protocol_no="+protocol_no+" , isUsingCustomServier="+isUsingCustomServer+", server host="+\r
- getProtocolServerHost(context)+", server port="+getProtocolServerPort(context));\r
- }\r
-\r
- public static boolean noLocationCycle=getNoLocationCycleFlag();\r
- public static boolean getNoLocationCycleFlag(){\r
- String tmp=Util.getSystemProperties("persist.sys.NoLocationCycle");\r
- boolean ret=false;\r
- if (tmp.equals("true"))\r
- ret=true;\r
-\r
- noLocationCycle=ret;\r
- return ret;\r
- }\r
-\r
- public static final int PROTOCOL_JIAI=0;\r
- public static final int PROTOCOL_BEEHOME=1;\r
- public static final int PROTOCOL_IC=2;\r
- public static final int PROTOCOL_FZD=3;\r
- public static final int PROTOCOL_MQTT=4;\r
-\r
- public static int protocol_no=getProtocolNumber();\r
- public static int getProtocolNumber(){\r
- String tmp=Util.getSystemProperties("persist.sys.protocol_no");\r
- int ret=0;\r
- if (tmp!=null && !tmp.isEmpty()&& Util.isNumeric(tmp)) {\r
- ret = Integer.parseInt(tmp);\r
- switch(ret){\r
- case PROTOCOL_JIAI:\r
- ICLogger.i("协议 JIAI");\r
- break;\r
- case PROTOCOL_BEEHOME:\r
- ICLogger.i("协议 BEEHOME");\r
- break;\r
- case PROTOCOL_IC:\r
- ICLogger.i("协议 IC");\r
- break;\r
- case PROTOCOL_FZD:\r
- ICLogger.i("协议 FZD");\r
- break;\r
- case PROTOCOL_MQTT:\r
- ICLogger.i("协议 MQTT");\r
- break;\r
- default:\r
- ICLogger.i("协议版本 目前支持0,1,2,3,4 。");\r
- break;\r
- }\r
- }else{\r
- ICLogger.i("协议版本要是数字,目前支持0,1,2,3,4 。");\r
- }\r
- protocol_no=ret;\r
- return ret;\r
- }\r
-\r
-\r
- public static void setPPGAdjust(Context context,int adjust){\r
- SharPreferenceUtil.setPrefInt(context,KeyPPGadust,adjust);\r
- }\r
-\r
-\r
- public static int getPPGAdjust(Context context){\r
- return SharPreferenceUtil.getPrefInt(context,KeyPPGadust, 0);\r
- }\r
-\r
- public static void setBPHAdjust(Context context,int adjust){\r
- SharPreferenceUtil.setPrefInt(context,KeyBPHadust,adjust);\r
- }\r
-\r
-\r
- public static int getBPHAdjust(Context context){\r
- return SharPreferenceUtil.getPrefInt(context,KeyBPHadust, 0);\r
- }\r
-\r
-\r
-\r
- public static int getBPLAdjust(Context context){\r
- return SharPreferenceUtil.getPrefInt(context,KeyBPLadust, 0);\r
- }\r
-\r
- public static void setBPLAdjust(Context context,int adjust){\r
- SharPreferenceUtil.setPrefInt(context,KeyBPLadust,adjust);\r
- }\r
-\r
- public static void setSPo2Adjust(Context context,int adjust){\r
- SharPreferenceUtil.setPrefInt(context,KeySPo2adust,adjust);\r
- }\r
-\r
- public static int getSPo2Adjust(Context context){\r
- return SharPreferenceUtil.getPrefInt(context,KeySPo2adust, 0);\r
- }\r
-\r
- public static void loadPPG_BPH_BPL_SPO2_adjustvalue(Context context,Runtime runtime){\r
- int ppgadj,bphadj,bpladj,spo2adj;\r
- ppgadj=getPPGAdjust(context);\r
- bphadj=getBPHAdjust(context);\r
- bpladj=getBPLAdjust(context);\r
- spo2adj=getSPo2Adjust(context);\r
- runtime.getHRS().setAdjust(ppgadj,bphadj,bpladj,spo2adj);\r
- ICLogger.i("Load Health adjust value ppg "+ppgadj+", bph "+bphadj+", bpl "+bpladj+", spo2 "+spo2adj);\r
- }\r
-\r
-\r
-\r
- //心率血压血氧校准值\r
- public static String getPPG_ECG_adjustValue(){\r
- return Util.getSystemProperties("persist.sys."+Constants.SHAREKEY_SETTING_PPG_ECG_ADJUST,"0,0,0,0");\r
- }\r
-\r
- public static void setPPG_ECG_adjustValue(String adjvalue){\r
- Util.setSystemProperties("persist.sys."+Constants.SHAREKEY_SETTING_PPG_ECG_ADJUST,adjvalue);\r
- }\r
-\r
- //久坐时间获取\r
- public static int getKeepSitRangeInMinutes(Context context ){\r
- return Util.getSystemPropertiesInt("persist.sys."+Constants.SHAREKEY_SETTING_SIT_ALARM_RANGE_IN_MINUTES,0);\r
-// return SharPreferenceUtil.getPrefIntPublic(context,Constants.SHAREKEY_SETTING_SIT_ALARM_RANGE_IN_MINUTES,0);\r
- }\r
-\r
- //久坐时间设置\r
- public static void setKeepSitRangeInMinutes(Context context, int RangeInMinutes){\r
- Util.setSystemProperties("persist.sys."+Constants.SHAREKEY_SETTING_SIT_ALARM_RANGE_IN_MINUTES,RangeInMinutes);\r
-// SharPreferenceUtil.setPrefIntPublic(context,Constants.SHAREKEY_SETTING_SIT_ALARM_RANGE_IN_MINUTES,RangeInMinutes);\r
- }\r
-\r
- public static void setSleepDate(Context context,String dateyyyyMMddHHmmss){\r
- Util.setSystemProperties("persist.sys."+Constants.SHAREKEY_SETTING_SLEEP_SCORE_DATE,dateyyyyMMddHHmmss);\r
-// SharPreferenceUtil.setPrefStringPublic(context,Constants.SHAREKEY_SETTING_SLEEP_SCORE_DATE,dateyyyyMMddHHmmss);\r
- }\r
-\r
-\r
- public static void setSleepScore(Context context,int score){\r
-// SharPreferenceUtil.setPrefIntPublic(context,Constants.SHAREKEY_SETTING_SLEEP_SCORE,score);\r
- Util.setSystemProperties("persist.sys."+Constants.SHAREKEY_SETTING_SLEEP_SCORE,score);\r
-\r
- }\r
-\r
- public static String getSleepDate(Context context){\r
- return Util.getSystemProperties("persist.sys."+Constants.SHAREKEY_SETTING_SLEEP_SCORE_DATE,"");\r
- }\r
-\r
-\r
- public static int getSleepScore(Context context){\r
-\r
- return Util.getSystemPropertiesInt("persist.sys."+Constants.SHAREKEY_SETTING_SLEEP_SCORE,0);\r
-\r
- }\r
- public static void setNeedCutOff(Context context,boolean enAnti){\r
- SharPreferenceUtil.setPrefBoolean(context,"NeedCutOff",enAnti);\r
- }\r
-\r
- public static boolean getNeedCutOff(Context context){\r
- return SharPreferenceUtil.getPrefBoolean(context,"NeedCutOff", false);\r
- }\r
- public static void setNeedAntiOff(Context context,boolean enAnti){\r
- SharPreferenceUtil.setPrefBoolean(context,"NeedAntiOff",enAnti);\r
- }\r
-\r
- public static boolean getNeedAntiOff(Context context){\r
- return SharPreferenceUtil.getPrefBoolean(context,"NeedAntiOff", false);\r
- }\r
- public static boolean enableSleep=false;\r
- /**\r
- * 参考数据,平均每分钟步数来判断,大于 KeepSitJudgementRefValue 认为没有坐着。小于等于这个值认为坐着。\r
- */\r
- public static int KeepSitJudgementRefValue=30;\r
-\r
- /***\r
- * persist.sys.alarmConfig=ALARM_SOS,ALARM_LOWBATTERY,ALARM_ANTIOFF,ALARM_WEARED,ALARM_CUTOFF,ALARM_FALL,ALARM_ABNORMAL_HEART_RATE,ALARM_HEART_RATE_HIGH,ALARM_HEART_RATE_LOW,ALARM_BPH_HIGH,ALARM_BPH_LOW,ALARM_BPL_HIGH,ALARM_BPL_LOW,ALARM_SEDENTARY,ALARM_ILLEGAL_CUTOFF,ALARM_LOCK_WATCH,ALARM_TEMP_HIGH,ALARM_TEMP_LOW,ALARM_POWER_OFF,ALARM_ESCAPE,ALARM_NONE\r
- * 配在里面的表示开启,没配的表示关闭。 默认ALARM_SOS,ALARM_LOWBATTERY,ALARM_POWER_OFF开启\r
- * ALARM_ILLEGAL_CUTOFF,ALARM_FALL,ALARM_ABNORMAL_HEART_RATE 没有使用,设置了也没有用\r
- */\r
- public static void loadAlarmConfig(){\r
- String configvalues=Util.getSystemProperties("persist.sys.alarmConfig","");\r
- String[] values=configvalues.split(",");\r
- if (values.length>0){\r
- for (int i=0; i< values.length;i++)\r
- {\r
- for (Runtime.AlarmType at: Runtime.AlarmType.values()) {\r
- if (values[i].trim().equals(at.name())){\r
- ConfigAlarm(at,true);\r
- break;\r
- }\r
- }\r
- }\r
- }\r
- dumpAlarmConfig();\r
- }\r
-\r
- public static void ConfigAlarm(Runtime.AlarmType alarmType,boolean enabled){\r
- AlarmConfiglist.put(alarmType.ordinal(),enabled);\r
- }\r
- public static void dumpAlarmConfig(){\r
- for (int i=0;i<AlarmConfiglist.size();i++) {\r
- ICLogger.i(Runtime.AlarmType.values()[i].name()+" "+AlarmConfiglist.get(i));\r
- }\r
- }\r
- private static HashMap<Integer,Boolean> AlarmConfiglist;\r
- static {\r
- AlarmConfiglist=new HashMap<Integer,Boolean>();\r
- AlarmConfiglist.put(Runtime.AlarmType.ALARM_SOS.ordinal(),true);\r
- AlarmConfiglist.put(Runtime.AlarmType.ALARM_LOWBATTERY.ordinal(),true);\r
- AlarmConfiglist.put(Runtime.AlarmType.ALARM_ANTIOFF.ordinal(),false);\r
- AlarmConfiglist.put(Runtime.AlarmType.ALARM_WEARED.ordinal(),false);\r
- AlarmConfiglist.put(Runtime.AlarmType.ALARM_CUTOFF.ordinal(),false);\r
- AlarmConfiglist.put(Runtime.AlarmType.ALARM_FALL.ordinal(),false);\r
- AlarmConfiglist.put(Runtime.AlarmType.ALARM_ABNORMAL_HEART_RATE.ordinal(),false);\r
- AlarmConfiglist.put(Runtime.AlarmType.ALARM_HEART_RATE_HIGH.ordinal(),false);\r
- AlarmConfiglist.put(Runtime.AlarmType.ALARM_HEART_RATE_LOW.ordinal(),false);\r
- AlarmConfiglist.put(Runtime.AlarmType.ALARM_BPH_HIGH.ordinal(),false);\r
- AlarmConfiglist.put(Runtime.AlarmType.ALARM_BPH_LOW.ordinal(),false);\r
- AlarmConfiglist.put(Runtime.AlarmType.ALARM_BPL_HIGH.ordinal(),false);\r
- AlarmConfiglist.put(Runtime.AlarmType.ALARM_BPL_LOW.ordinal(),false);\r
- AlarmConfiglist.put(Runtime.AlarmType.ALARM_SEDENTARY.ordinal(),false);\r
- AlarmConfiglist.put(Runtime.AlarmType.ALARM_ILLEGAL_CUTOFF.ordinal(),false);\r
- AlarmConfiglist.put(Runtime.AlarmType.ALARM_LOCK_WATCH.ordinal(),false);\r
- AlarmConfiglist.put(Runtime.AlarmType.ALARM_TEMP_HIGH.ordinal(),false);\r
- AlarmConfiglist.put(Runtime.AlarmType.ALARM_TEMP_LOW.ordinal(),false);\r
- AlarmConfiglist.put(Runtime.AlarmType.ALARM_POWER_OFF.ordinal(),true);\r
- AlarmConfiglist.put(Runtime.AlarmType.ALARM_ESCAPE.ordinal(),false);\r
- AlarmConfiglist.put(Runtime.AlarmType.ALARM_NONE.ordinal(),false);\r
- AlarmConfiglist.put(Runtime.AlarmType.ALARM_REMOVE_SOS.ordinal(),true);\r
- }\r
-\r
- public static boolean isAlarmTypeEnabled(Runtime.AlarmType alarmType){\r
-\r
- boolean en=false;\r
- if (AlarmConfiglist.containsKey(alarmType.ordinal())){\r
- en=AlarmConfiglist.get(alarmType.ordinal());\r
- }\r
- return en;\r
- }\r
- public static boolean needWaterMark(){\r
- String customname=getSystemProperties("persist.sys.needWaterMark","true");\r
- if(customname.trim().equals("true")){\r
- return true;\r
- }else\r
- return false;\r
- }\r
-}\r
-\r
+package com.enqualcomm.support;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.text.TextUtils;
+
+import com.enqualcomm.support.bean.ICLocation;
+import com.enqualcomm.support.bean.Runtime;
+import com.enqualcomm.support.utils.ICAudioManager;
+import com.enqualcomm.support.utils.ICLogger;
+import com.enqualcomm.support.utils.SharPreferenceUtil;
+import com.enqualcomm.support.utils.TimeUtil;
+import com.enqualcomm.support.utils.Util;
+import com.enqualcomm.support.utils.VibrateUtil;
+import com.ic.jni.ICJniUtils;
+import com.ic.protocols.protocolAPIHelper;
+
+import org.json.JSONException;
+import org.json.JSONStringer;
+
+import java.util.HashMap;
+
+import static com.enqualcomm.support.utils.Util.getSystemProperties;
+
+public class Config {
+ public static final boolean LOG_TOFILE=true;
+ public static int antioff = 0;
+ public static int heart_rate = 0;
+ private static String json;
+ public static int defaultHeartbeatCycle=5;
+ public static int sw_release_no = -1;
+
+
+ //如果重试都失败,则丢弃命令不进行盲点续传
+ public static boolean discard_cmd_after_retryfailed=true;
+
+ public static boolean forceMoveCheck=true;
+ public static boolean forceWearCheck=true;
+
+ private static final String KEYDurationOfVibration = "DurationVib";
+ private static final String KeyMasterVolume = "MasterVolume";
+
+ public static final String DefaultLogFtpServer="icfota.snicker.com.cn";
+ public static final String DefaultLogFtpUser="ftpuser";
+ public static final String DefaultLogFtpPWD="iclog";
+
+
+ public static final String DefaultWiFiSSID="Xplay6";
+ public static final String DefaultWiFiPWD="87654321";
+ public static final String DefaultWiFiEncryptType="psk";
+
+ public static final int GPSLocationTimeoutInSeconds=50;
+ public static final int WiFiLocationTimeoutInSeconds=12;
+
+ public static String c43_branch_name="none";
+ public static String custom_name="none";
+
+ //配置是否广播提示框信息给外部应用显示
+ public static boolean noBroadCastSMSNotify=false;
+ public static boolean noBroadCastPushTxtNotify=false;
+
+
+ //protocol内部Dialog配置,true表示用外部提示窗,false表示用协议内部提示窗
+ public static boolean noSMSNotifyDialog=false;
+ public static boolean noPushTxtNotifyDialog=false;
+ public static boolean noVoiceNotifyDialog=false;
+
+ //是否SOS拨号的开关,false表示只发送系统sosalarm,不发起SOS拨号
+ public static boolean SOSNoNeedDial=false;
+
+ //ic68只有体温没有腕温,它开启代表原来的腕温函数取出的就是体温,不需要再进行换算了。
+ public static boolean disableWristTemp=false;
+ //配置是否有温度传感器
+ public static boolean noTempSensor=false;
+ //配置是否有心率传感器
+ public static boolean noPPGSensor=false;
+ //配置脱腕报警是否需要弹出脱腕提示 默认关闭
+ public static boolean needBroadcastAntiAlarm=false;
+ //配置脱腕报警是否需要弹出剪断提示 默认开启
+ public static boolean needBroadcastCutoffAlarm=true;
+
+
+ //定位是否使用wifi的配置。
+ public static boolean disableWiFiScan=false;
+
+ public static int BLEScanProtocol=0; /** 0 代表扫描beacon后 自行判断是否在指定区域,需要协议绑定beacon地址。
+ * 1 代表扫描beacon后,直接把扫描结果上报即可。
+ **/
+
+ public static boolean UsePolingCheckWeared=false;
+
+ static {
+ disableWiFiScan=Util.getSystemProperties("persist.sys.disableWiFiLocation","false").equals("true");
+ disableWristTemp=Util.getSystemProperties("persist.sys.disableWristTemp","false").equals("true");
+ BLEScanProtocol=Util.getSystemPropertiesInt("persist.sys.BLEScanProtocol",0);
+ UsePolingCheckWeared=Util.getSystemProperties("persist.sys.PolingCheckAnti","false").equals("true");
+ }
+
+ private static String make() {
+ try {
+ return (new JSONStringer()).object()
+ .key("cmd").value("Init")
+ .key("sw_version").value("eiot_V1.0.0")
+ .key("protocol_version").value("2.0")
+ .key("product").value(2L)
+ .key("swReleaseNo").value(sw_release_no)
+ .endObject().toString();
+ } catch (JSONException jSONException) {
+ jSONException.printStackTrace();
+ return "";
+ }
+ }
+
+ public static String toJson() {
+ if (TextUtils.isEmpty(json))
+ json = make();
+ return json;
+ }
+
+
+ public final static boolean isL03Tracker=getIsL03tracker();
+ public final static boolean upload_logs_via_ftp=false;
+ final static String KeyProtocolServerIP="ProtocolServerIP";
+ final static String KeyProtocolServerHOST="ProtocolServerHOST";
+ final static String KeyProtocolServerPort="ProtoclServerPort";;
+ final static String KeyLogServerIP="LogServerIP";
+ final static String KeyLogServerPort="LogServerPort";
+ final static String KeyFotaServerUrl="FotaServerUrl";
+
+
+ final static String KeyPpgTestCycle="PPGTestCycle";
+ final static String KeyLocationCycle="LocationCycle";
+ final static String KeyLocationMode="LocationMode";;
+
+ final static String KeyAlarmCycle="HeartBeatCycle";
+
+ final static String KeyContactsList="ContactsList";
+ final static String KeySOSNumbersList="SOSNumbersList";
+
+ final static String KeyIMEI = "persist.sys.protocol_IMEI";
+ public final static String KeyQRURIFILE = "persist.sys.qrUriFile";
+
+ final static String KeyPractiseState = "persist.sys.practising";
+
+ final static String KeyHeartBeatCycle="ServerHeartBeatCycle";
+
+
+ final static String KeyLogFtpServer="FtpServerHost";
+ final static String KeyLogFtpUser="FtpServerUser";
+ final static String KeyLogFtpPWD="FtpServerPWD";
+
+
+ final static String KeyWiFiSSID="WiFiSSID";
+ final static String KeyWiFiPasswd="WiFiPWD";
+ final static String KeyWiFiEncyptType="WiFiEncryptType";
+
+ final static String KeySMSPassword="SMSPWD";
+ final static String DefaultSMSPassword="non";
+
+ final static String KeyTempTestCycle="TempTestCycle";
+
+
+ final static String KeyPPGadust="KeyPPGAdjust";
+ final static String KeyBPHadust="KeyBPHAdjust";
+ final static String KeyBPLadust="KeyBPLAdjust";
+ final static String KeySPo2adust="KeySPo2Adjust";
+
+ final static String KeyPolingCycleCheckAnti="PolingCycleCheckAnti";
+ final static String KeyBleScanCycle="BleScanCycle";
+
+ final static String KeyLastUnReadMessage="UnreadMsg";
+
+
+ public static void setDurationOfVibration(Context context, int cycle){
+ SharPreferenceUtil.setPrefInt(context,KEYDurationOfVibration,cycle);
+ }
+
+ public static int getDurationOfVibration(Context context){
+ return SharPreferenceUtil.getPrefInt(context,KEYDurationOfVibration,1);
+ }
+
+ public static void setMasterVolume(Context context, int cycle){
+ SharPreferenceUtil.setPrefInt(context,KeyMasterVolume,cycle);
+ }
+
+ public static int getMasterVolume(Context context){
+ return SharPreferenceUtil.getPrefInt(context,KeyMasterVolume,15);
+ }
+
+
+ public static void setCheckAntiPolingCycle(Context context, int cycle){
+ SharPreferenceUtil.setPrefInt(context,KeyPolingCycleCheckAnti,cycle);
+ }
+
+ public static int getCheckAntiPolingCycle(Context context){
+ return SharPreferenceUtil.getPrefInt(context,KeyPolingCycleCheckAnti,0);
+ }
+
+ public static void setBleScanCycle(Context context, int cycle){
+ SharPreferenceUtil.setPrefInt(context,KeyBleScanCycle,cycle);
+ }
+
+ public static int getBleScanCycle(Context context){
+ return SharPreferenceUtil.getPrefInt(context,KeyBleScanCycle,0);
+ }
+
+ public static String getLastUnReadMessage(Context context){
+ return SharPreferenceUtil.getPrefString(context,KeyLastUnReadMessage,"");
+ }
+
+ public static void setLastUnReadMessage(Context context,String smsPWD){
+ SharPreferenceUtil.setPrefString(context,KeyLastUnReadMessage,smsPWD);
+ }
+
+ public static String getSMSPwd(Context context){
+ return SharPreferenceUtil.getPrefString(context,KeySMSPassword,DefaultSMSPassword);
+ }
+
+ public static void setSMSPwd(Context context,String smsPWD){
+ SharPreferenceUtil.setPrefString(context,KeySMSPassword,smsPWD);
+ }
+ public static boolean getIsL03tracker(){
+ boolean ret=getSystemProperties("persist.sys.isL03tracker").toLowerCase().equals("true");
+ return ret;
+ }
+ public static String getWiFiSSID(Context context){
+ return SharPreferenceUtil.getPrefString(context,KeyWiFiSSID,DefaultWiFiSSID);
+ }
+
+ public static void setWiFiSSID(Context context,String ssid){
+ SharPreferenceUtil.setPrefString(context,KeyWiFiSSID,ssid);
+ }
+
+ public static String getWiFiPasswd(Context context){
+ return SharPreferenceUtil.getPrefString(context,KeyWiFiPasswd,DefaultWiFiPWD);
+ }
+
+ public static void setWiFiPasswd(Context context,String pwd){
+ SharPreferenceUtil.setPrefString(context,KeyWiFiPasswd,pwd);
+ }
+
+ public static String getWiFiEncryptType(Context context){
+ return SharPreferenceUtil.getPrefString(context,KeyWiFiEncyptType,DefaultWiFiEncryptType);
+ }
+
+ public static void setWiFiEncryptType(Context context,String type){
+ SharPreferenceUtil.setPrefString(context,KeyWiFiEncyptType,type);
+ }
+
+ public static String getFotaServerUrl(Context context){
+ return SharPreferenceUtil.getPrefString(context,KeyFotaServerUrl,"");
+ }
+
+ public static void setFotaServerUrl(Context context,String url){
+ SharPreferenceUtil.setPrefString(context,KeyFotaServerUrl,url);
+ }
+ public static String getFtpUser(Context context){
+ return SharPreferenceUtil.getPrefString(context,KeyLogFtpUser,DefaultLogFtpUser);
+ }
+
+ public static void setFtpUser(Context context,String user){
+ SharPreferenceUtil.setPrefString(context,KeyLogFtpUser,user);
+ }
+
+ public static String getFtpServer(Context context){
+ return SharPreferenceUtil.getPrefString(context,KeyLogFtpServer,DefaultLogFtpServer);
+ }
+
+ public static void setFtpServer(Context context,String host){
+ SharPreferenceUtil.setPrefString(context,KeyLogFtpServer,host);
+ }
+
+ public static String getFtpPWD(Context context){
+ return SharPreferenceUtil.getPrefString(context,KeyLogFtpPWD,DefaultLogFtpPWD);
+ }
+ public static void setFtpPWD(Context context,String PWD){
+ SharPreferenceUtil.setPrefString(context,KeyLogFtpPWD,PWD);
+ }
+
+ public static void setAlarmCycle(Context context, int cycle){
+ SharPreferenceUtil.setPrefInt(context,KeyAlarmCycle,cycle);
+ }
+
+ //默认3分钟,刚刚wakeup的时候1分钟
+ public static int getAlarmCycle(Context context){
+ return SharPreferenceUtil.getPrefInt(context,KeyAlarmCycle,3);
+ }
+
+ public static void setProtocolServerPort(Context context, int serverPort){
+// SharPreferenceUtil.setPrefString(context,KeyProtocolServerIP,serverIP);
+ SharPreferenceUtil.setPrefInt(context,KeyProtocolServerPort,serverPort);
+ }
+
+ public static void setProtocolServerHost(Context context,String host){
+ SharPreferenceUtil.setPrefString(context,KeyProtocolServerHOST,host);
+ }
+ //public static String getProtocolServerIP(Context context){
+ // return SharPreferenceUtil.getPrefString(context,KeyProtocolServerIP,"118.178.155.223");
+ // }
+
+ public static void loadModCycleSettings(Runtime runtime){
+ Context context=runtime.getContextProxy().context;
+ ICLogger.i("current Cycles PPG "+ runtime.getPpgTestCycle()+" , LocationCycle "+runtime.getLocationInstance().getLocation_cycle()+" LocationMode "+runtime.getLocationInstance().getWorkingMod());
+ runtime.setPpgTestCycle(Config.getPPGTestCycle(context));
+ runtime.getLocationInstance().setLocation_cycle(Config.getLocationCycle(context));
+ runtime.getLocationInstance().setWorkingMod(Config.getLocationMode(context));
+ ICLogger.i("current Cycles PPG "+ runtime.getPpgTestCycle()+" , LocationCycle "+runtime.getLocationInstance().getLocation_cycle()+" LocationMode "+runtime.getLocationInstance().getWorkingMod());
+
+ int mastervolume = getMasterVolume(context);
+ ICAudioManager.setMasterVolumn(context,mastervolume);
+
+ int duration= getDurationOfVibration(context);
+ VibrateUtil.setVibPattern(duration*1000);
+
+ }
+
+ public static void loadHearBeatSetting(Runtime runtime){
+ runtime.setHeartBeatCycle(Config.getHeartBeatCycle(runtime.getContextProxy().context));
+ }
+ public static void loadServerSettings(Runtime runtime){
+ runtime.setHostAndPort(Config.getProtocolServerHost(runtime.getContextProxy().context),Config.getProtocolServerPort(runtime.getContextProxy().context));
+ }
+
+ public static void setIMEI(Context context, String imei){
+ Util.setSystemProperties(KeyIMEI,imei);
+ }
+
+ public static String getIMEI(Context context){
+ return Util.getSystemProperties(KeyIMEI,"");
+ }
+
+ public static String getProtocolServerHost(Context context){
+ String host;
+ host= SharPreferenceUtil.getPrefString(context,KeyProtocolServerHOST,protocolAPIHelper.getDefaultServerIP());
+ return host;
+ }
+
+
+ public static int getProtocolServerPort(Context context){
+ int port;
+ port= SharPreferenceUtil.getPrefInt(context,KeyProtocolServerPort,protocolAPIHelper.getDefaultServerPort());
+ return port;
+ }
+
+ public static void setConfigInitFlag(Context context,int flag){
+ SharPreferenceUtil.setPrefInt(context,"ConfigInitFlag",flag);
+ }
+
+ public static int getConfigInitFlag(Context context){
+ return SharPreferenceUtil.getPrefInt(context,"ConfigInitFlag",0);
+ }
+ public static void setLogServerIP(Context context,String serverIP,int serverPort){
+
+ SharPreferenceUtil.setPrefString(context,KeyLogServerIP,serverIP);
+ SharPreferenceUtil.setPrefInt(context,KeyLogServerPort,serverPort);
+
+ }
+ public static String getLogServerIP(Context context){
+ return SharPreferenceUtil.getPrefString(context,KeyLogServerIP,"http://icfota.snicker.com.cn:8089/UploadFile.jsp");
+ }
+
+ public static int getLogServerPort(Context context){
+ return SharPreferenceUtil.getPrefInt(context,KeyLogServerPort,8089);
+ }
+
+
+ public static void setPPGTestCycle(Context context,int cycle_ninutes){
+ SharPreferenceUtil.setPrefInt(context,KeyPpgTestCycle,cycle_ninutes);
+ }
+
+ public static int getPPGTestCycle(Context context){
+ return SharPreferenceUtil.getPrefInt(context,KeyPpgTestCycle,0);
+ }
+
+
+ public static int getHeartBeatCycle(Context context){
+ return SharPreferenceUtil.getPrefInt(context,KeyHeartBeatCycle,5);
+ }
+
+ public static void setHeartBeatCycle(Context context,int cycle){
+ SharPreferenceUtil.setPrefInt(context,KeyHeartBeatCycle,cycle);
+ }
+ public static void setLocationCycle(Context context,int cycle_second){
+ SharPreferenceUtil.setPrefInt(context,KeyLocationCycle,cycle_second);
+ }
+
+ public static int getLocationCycle(Context context){
+ return SharPreferenceUtil.getPrefInt(context,KeyLocationCycle,900);
+ }
+
+ public static void setLocationMode(Context context,int mode){
+ ICLogger.i("setLocationMode "+mode);
+ SharPreferenceUtil.setPrefInt(context,KeyLocationMode,mode);
+ }
+
+
+ public static int getLocationMode(Context context){
+ return SharPreferenceUtil.getPrefInt(context,KeyLocationMode, ICLocation.NORMAL_MOD);
+ }
+
+ private static final String KeyBootUpDate = "bootupdate";
+ public static boolean logBootDate(Context context){
+ //如果时间和最后一次时间不同,则重置,否则启动次数+1
+ if (isFirstBootToday(context)) {
+ SharPreferenceUtil.setPrefString(context, KeyBootUpDate, TimeUtil.getSystemTime4());
+ return true;
+ }else{
+ return false;
+ }
+ }
+
+ private static String getLastBootupDate(Context context){
+ return SharPreferenceUtil.getPrefString(context,KeyBootUpDate,"");
+ }
+ private static boolean isFirstBootToday(Context context){
+ //第一次启动记录的日期,当前日期只要相同,就认为有启动过。
+ //如果手表一直没有重启过,则每次resetStepCount的时候把启动时间更新到当天,
+ //从而解决第二天重启就会被重置的问题!
+ String currentDate=TimeUtil.getSystemTime4();
+ String lastDate=getLastBootupDate(context);
+ boolean ret=false;
+ if (currentDate.equals(lastDate)) {
+ ret= false;
+ }else
+ {
+ ret= true;
+ }
+ ICLogger.i("Current BootDate="+currentDate+", Last BootDate="+lastDate+", ret="+ret);
+ return ret;
+ }
+
+ //收到语音微聊广播消息给外部窗口
+ public static boolean do_broadCast_message=false;
+
+ //每次心跳时都检测逃逸并报警
+ public static boolean needAllwaysAlarmFenceOut=false;
+ //每次心跳时都检测剪断并报警,只报警
+ public static boolean needAllwaysAlarmCutOff=false;
+
+ //体温非正常报警
+ public static boolean needTemperature_abnormal_alarm=false;
+ public static boolean A9_noBroadCastActionStrip=false;
+ public static boolean C5_noBroadCastActionStrip=false;
+ public static boolean L004_BroadCastActionStrip=false;
+
+ //停止系统NTP时钟同步标志
+ public static boolean disable_ntp_server=false;
+
+ //需要系统发送已阅读消息的标志
+ public static boolean noPushTxtReadReply=true;
+ //蓝牙定位扫描 协议0模式,扫到beacon信标时,如果属于第一次扫到的进入状态(解除逃逸状态),发送服务器的标志位,主要由于C5客户只要逃逸,不要解除逃逸消息。
+ public static boolean noBLE_RelaseEscapeAlarm=true;
+
+ public static void enable_NTP_Server(Context context,boolean enable){
+ try {
+ int autotime = Settings.Global.getInt(context.getContentResolver(),Settings.Global.AUTO_TIME);
+ int autotimezone = Settings.Global.getInt(context.getContentResolver(),Settings.Global.AUTO_TIME_ZONE);
+
+ ICLogger.i("get NTP Settings AutoTime "+autotime+" AutoTimeZone "+autotimezone);
+
+ if(enable)
+ {
+ Settings.Global.putInt(context.getContentResolver(), Settings.Global.AUTO_TIME_ZONE, 1);
+ Settings.Global.putInt(context.getContentResolver(), Settings.Global.AUTO_TIME, 1);
+ }else {
+ Settings.Global.putInt(context.getContentResolver(), Settings.Global.AUTO_TIME_ZONE, 0);
+ Settings.Global.putInt(context.getContentResolver(), Settings.Global.AUTO_TIME, 0);
+ }
+ autotime = Settings.Global.getInt(context.getContentResolver(),Settings.Global.AUTO_TIME);
+ autotimezone = Settings.Global.getInt(context.getContentResolver(),Settings.Global.AUTO_TIME_ZONE);
+ ICLogger.i("get NTP Settings AutoTime "+autotime+" AutoTimeZone "+autotimezone);
+ } catch (Settings.SettingNotFoundException e) {
+ e.printStackTrace();
+ ICLogger.e(e.getMessage(),e);
+ }
+ }
+ public static void LoadMessageConfigs(){
+
+ String tmp=Util.getSystemProperties("persist.sys.doBroadcastMSG");
+ boolean ret=false;
+ if (tmp.equals("true"))
+ ret=true;
+
+ do_broadCast_message = ret;
+
+ noPPGSensor=(ICJniUtils.isPPGavailable()==0);
+ noTempSensor=(ICJniUtils.isTemperatureDevAvailable()==0);
+
+ //默认关闭NTP
+ disable_ntp_server=Util.getSystemProperties("persist.sys.disableNTP","false").equals("true");
+
+ c43_branch_name=Util.getSystemProperties("persist.sys.c43.branch");
+
+ if ((c43_branch_name.equals("l03")) ||(c43_branch_name.equals("l05"))){
+ noPushTxtNotifyDialog=true;
+ noSMSNotifyDialog=true;
+ noVoiceNotifyDialog=true;
+ noTempSensor=true;
+ if (c43_branch_name.equals("l05")) {
+ SOSNoNeedDial=true;//采用新写的SOS,协议只需要发送消息,无需控制拨号。
+ noPPGSensor=false;
+ }else{
+ noPPGSensor=true;
+ }
+ }
+ custom_name=Util.getSystemProperties("persist.sys.customname");
+ ICLogger.i("get CUSTOMNAME "+custom_name);
+ if (custom_name.equals("H88")||custom_name.equals("H88A") ){
+ noPushTxtNotifyDialog=true;
+ noSMSNotifyDialog=false;
+ noVoiceNotifyDialog=false;
+ noPPGSensor=false;
+ noTempSensor=false;
+ needBroadcastAntiAlarm=false;
+ }else if ((custom_name.equals("AK")) ){
+ noPushTxtNotifyDialog=true;
+ noSMSNotifyDialog=true;
+ noVoiceNotifyDialog=true;
+ noPPGSensor=false;
+ noTempSensor=true;
+ SOSNoNeedDial=true; //采用新写的SOS,协议只需要发送消息,无需控制拨号。
+ }else if ((custom_name.equals("YT")) ){
+ noPushTxtNotifyDialog=false;
+ noSMSNotifyDialog=false;
+ noVoiceNotifyDialog=false;
+ noPPGSensor=false;
+ noTempSensor=true;
+ }else if ((custom_name.equals("l004")) ) {
+ noPushTxtNotifyDialog=true;
+ noSMSNotifyDialog=true;
+ noVoiceNotifyDialog=true;
+ needBroadcastAntiAlarm=false;
+ needBroadcastCutoffAlarm=true;
+ needAllwaysAlarmCutOff=false;
+ needAllwaysAlarmFenceOut=false;
+ needTemperature_abnormal_alarm=false;
+ noPPGSensor=false;
+ noTempSensor=false;
+ L004_BroadCastActionStrip=true;
+ }else if (custom_name.equals("YQ") ||custom_name.equals("YQ_EN") ) { //A9-YQ
+ noPushTxtNotifyDialog=false;
+ noSMSNotifyDialog=true;
+ noVoiceNotifyDialog=true;
+ noBroadCastPushTxtNotify=true;
+ noBroadCastSMSNotify=true;
+ needBroadcastAntiAlarm=false;
+ needBroadcastCutoffAlarm=true;
+ needAllwaysAlarmCutOff=true;
+ needAllwaysAlarmFenceOut=true;
+ needTemperature_abnormal_alarm=true;
+ noPushTxtReadReply=false;//A9需要阅读反馈
+ noPPGSensor=false;
+ noTempSensor=false;
+ A9_noBroadCastActionStrip=true;
+ }else if (custom_name.equals("SGL"))
+ {
+ noPushTxtNotifyDialog=false;
+ noSMSNotifyDialog=false;
+ noVoiceNotifyDialog=true;
+ needBroadcastAntiAlarm=true;
+ needBroadcastCutoffAlarm=true;
+ needAllwaysAlarmCutOff=true;
+ needAllwaysAlarmFenceOut=false;
+ needTemperature_abnormal_alarm=false;
+ noPPGSensor=true;
+ noTempSensor=true;
+ C5_noBroadCastActionStrip=true;
+ }else if(custom_name.equals("L02")){
+ noPushTxtReadReply=false;//即爱需要阅读反馈
+ }else{
+ noBroadCastPushTxtNotify=true;
+ }
+
+
+ }
+
+ public static void loadTemperatureSettings(Runtime runtime){
+ runtime.temp_test_Cycle_Seconds = SharPreferenceUtil.getPrefInt(runtime.getContextProxy().context, KeyTempTestCycle, 60*60);
+ }
+
+ public static void setTemperatureTestCycle(Runtime runtime,int cycle_seconds) {
+ SharPreferenceUtil.setPrefInt(runtime.getContextProxy().context,KeyTempTestCycle,cycle_seconds);
+ loadTemperatureSettings(runtime);
+ }
+ public static boolean isUsingCustomServer=false;
+
+ public static void setCustomServer(Context context,boolean isusingCutomerServer,String serverip,int serverport) {
+
+ if (isusingCutomerServer)
+ Util.setSystemProperties("persist.sys.UsingCustomServer","true");
+ else
+ Util.setSystemProperties("persist.sys.UsingCustomServer","false");
+
+
+ Util.setSystemProperties("persist.sys.customserverip",serverip);
+ Util.setSystemProperties("persist.sys.customserverport",String.valueOf(serverport));
+ setProtocolServerHost(context,serverip);
+ setProtocolServerPort(context,serverport);
+
+ loadCustomServerAddr(context);
+
+ }
+ public static void loadCustomServerAddr(Context context){
+ String tmp=Util.getSystemProperties("persist.sys.UsingCustomServer");
+ boolean ret=false;
+ if (tmp.equals("true"))
+ ret=true;
+
+ isUsingCustomServer=ret;
+
+ String serverip="";
+ int serverport=0;
+ if(isUsingCustomServer){
+ serverip= Util.getSystemProperties("persist.sys.customserverip");
+ serverport= Integer.valueOf(Util.getSystemProperties("persist.sys.customserverport"));
+ setProtocolServerHost(context,serverip);
+ setProtocolServerPort(context,serverport);
+
+ }else{
+ setProtocolServerHost(context, protocolAPIHelper.getDefaultServerIP());
+ setProtocolServerPort(context,protocolAPIHelper.getDefaultServerPort());
+ }
+ ICLogger.i("current protocol_no="+protocol_no+" , isUsingCustomServier="+isUsingCustomServer+", server host="+
+ getProtocolServerHost(context)+", server port="+getProtocolServerPort(context));
+ }
+
+ public static boolean noLocationCycle=getNoLocationCycleFlag();
+ public static boolean getNoLocationCycleFlag(){
+ String tmp=Util.getSystemProperties("persist.sys.NoLocationCycle");
+ boolean ret=false;
+ if (tmp.equals("true"))
+ ret=true;
+
+ noLocationCycle=ret;
+ return ret;
+ }
+
+ public static final int PROTOCOL_JIAI=0;
+ public static final int PROTOCOL_BEEHOME=1;
+ public static final int PROTOCOL_IC=2;
+ public static final int PROTOCOL_FZD=3;
+ public static final int PROTOCOL_MQTT=4;
+
+ public static int protocol_no=getProtocolNumber();
+ public static int getProtocolNumber(){
+ String tmp=Util.getSystemProperties("persist.sys.protocol_no");
+ int ret=0;
+ if (tmp!=null && !tmp.isEmpty()&& Util.isNumeric(tmp)) {
+ ret = Integer.parseInt(tmp);
+ switch(ret){
+ case PROTOCOL_JIAI:
+ ICLogger.i("协议 JIAI");
+ break;
+ case PROTOCOL_BEEHOME:
+ ICLogger.i("协议 BEEHOME");
+ break;
+ case PROTOCOL_IC:
+ ICLogger.i("协议 IC");
+ break;
+ case PROTOCOL_FZD:
+ ICLogger.i("协议 FZD");
+ break;
+ case PROTOCOL_MQTT:
+ ICLogger.i("协议 MQTT");
+ break;
+ default:
+ ICLogger.i("协议版本 目前支持0,1,2,3,4 。");
+ break;
+ }
+ }else{
+ ICLogger.i("协议版本要是数字,目前支持0,1,2,3,4 。");
+ }
+ protocol_no=ret;
+ return ret;
+ }
+
+
+ public static void setPPGAdjust(Context context,int adjust){
+ SharPreferenceUtil.setPrefInt(context,KeyPPGadust,adjust);
+ }
+
+
+ public static int getPPGAdjust(Context context){
+ return SharPreferenceUtil.getPrefInt(context,KeyPPGadust, 0);
+ }
+
+ public static void setBPHAdjust(Context context,int adjust){
+ SharPreferenceUtil.setPrefInt(context,KeyBPHadust,adjust);
+ }
+
+
+ public static int getBPHAdjust(Context context){
+ return SharPreferenceUtil.getPrefInt(context,KeyBPHadust, 0);
+ }
+
+
+
+ public static int getBPLAdjust(Context context){
+ return SharPreferenceUtil.getPrefInt(context,KeyBPLadust, 0);
+ }
+
+ public static void setBPLAdjust(Context context,int adjust){
+ SharPreferenceUtil.setPrefInt(context,KeyBPLadust,adjust);
+ }
+
+ public static void setSPo2Adjust(Context context,int adjust){
+ SharPreferenceUtil.setPrefInt(context,KeySPo2adust,adjust);
+ }
+
+ public static int getSPo2Adjust(Context context){
+ return SharPreferenceUtil.getPrefInt(context,KeySPo2adust, 0);
+ }
+
+ public static void loadPPG_BPH_BPL_SPO2_adjustvalue(Context context,Runtime runtime){
+ int ppgadj,bphadj,bpladj,spo2adj;
+ ppgadj=getPPGAdjust(context);
+ bphadj=getBPHAdjust(context);
+ bpladj=getBPLAdjust(context);
+ spo2adj=getSPo2Adjust(context);
+ runtime.getHRS().setAdjust(ppgadj,bphadj,bpladj,spo2adj);
+ ICLogger.i("Load Health adjust value ppg "+ppgadj+", bph "+bphadj+", bpl "+bpladj+", spo2 "+spo2adj);
+ }
+
+
+
+ //心率血压血氧校准值
+ public static String getPPG_ECG_adjustValue(){
+ return Util.getSystemProperties("persist.sys."+Constants.SHAREKEY_SETTING_PPG_ECG_ADJUST,"0,0,0,0");
+ }
+
+ public static void setPPG_ECG_adjustValue(String adjvalue){
+ Util.setSystemProperties("persist.sys."+Constants.SHAREKEY_SETTING_PPG_ECG_ADJUST,adjvalue);
+ }
+
+ //久坐时间获取
+ public static int getKeepSitRangeInMinutes(Context context ){
+ return Util.getSystemPropertiesInt("persist.sys."+Constants.SHAREKEY_SETTING_SIT_ALARM_RANGE_IN_MINUTES,0);
+// return SharPreferenceUtil.getPrefIntPublic(context,Constants.SHAREKEY_SETTING_SIT_ALARM_RANGE_IN_MINUTES,0);
+ }
+
+ //久坐时间设置
+ public static void setKeepSitRangeInMinutes(Context context, int RangeInMinutes){
+ Util.setSystemProperties("persist.sys."+Constants.SHAREKEY_SETTING_SIT_ALARM_RANGE_IN_MINUTES,RangeInMinutes);
+// SharPreferenceUtil.setPrefIntPublic(context,Constants.SHAREKEY_SETTING_SIT_ALARM_RANGE_IN_MINUTES,RangeInMinutes);
+ }
+
+ public static void setSleepDate(Context context,String dateyyyyMMddHHmmss){
+ Util.setSystemProperties("persist.sys."+Constants.SHAREKEY_SETTING_SLEEP_SCORE_DATE,dateyyyyMMddHHmmss);
+// SharPreferenceUtil.setPrefStringPublic(context,Constants.SHAREKEY_SETTING_SLEEP_SCORE_DATE,dateyyyyMMddHHmmss);
+ }
+
+
+ public static void setSleepScore(Context context,int score){
+// SharPreferenceUtil.setPrefIntPublic(context,Constants.SHAREKEY_SETTING_SLEEP_SCORE,score);
+ Util.setSystemProperties("persist.sys."+Constants.SHAREKEY_SETTING_SLEEP_SCORE,score);
+
+ }
+
+ public static String getSleepDate(Context context){
+ return Util.getSystemProperties("persist.sys."+Constants.SHAREKEY_SETTING_SLEEP_SCORE_DATE,"");
+ }
+
+
+ public static int getSleepScore(Context context){
+
+ return Util.getSystemPropertiesInt("persist.sys."+Constants.SHAREKEY_SETTING_SLEEP_SCORE,0);
+
+ }
+ public static void setNeedCutOff(Context context,boolean enAnti){
+ SharPreferenceUtil.setPrefBoolean(context,"NeedCutOff",enAnti);
+ }
+
+ public static boolean getNeedCutOff(Context context){
+ return SharPreferenceUtil.getPrefBoolean(context,"NeedCutOff", false);
+ }
+ public static void setNeedAntiOff(Context context,boolean enAnti){
+ SharPreferenceUtil.setPrefBoolean(context,"NeedAntiOff",enAnti);
+ }
+
+ public static boolean getNeedAntiOff(Context context){
+ return SharPreferenceUtil.getPrefBoolean(context,"NeedAntiOff", false);
+ }
+ public static boolean enableSleep=false;
+ /**
+ * 参考数据,平均每分钟步数来判断,大于 KeepSitJudgementRefValue 认为没有坐着。小于等于这个值认为坐着。
+ */
+ public static int KeepSitJudgementRefValue=30;
+
+ /***
+ * persist.sys.alarmConfig=ALARM_SOS,ALARM_LOWBATTERY,ALARM_ANTIOFF,ALARM_WEARED,ALARM_CUTOFF,ALARM_FALL,ALARM_ABNORMAL_HEART_RATE,ALARM_HEART_RATE_HIGH,ALARM_HEART_RATE_LOW,ALARM_BPH_HIGH,ALARM_BPH_LOW,ALARM_BPL_HIGH,ALARM_BPL_LOW,ALARM_SEDENTARY,ALARM_ILLEGAL_CUTOFF,ALARM_LOCK_WATCH,ALARM_TEMP_HIGH,ALARM_TEMP_LOW,ALARM_POWER_OFF,ALARM_ESCAPE,ALARM_NONE
+ * 配在里面的表示开启,没配的表示关闭。 默认ALARM_SOS,ALARM_LOWBATTERY,ALARM_POWER_OFF开启
+ * ALARM_ILLEGAL_CUTOFF,ALARM_FALL,ALARM_ABNORMAL_HEART_RATE 没有使用,设置了也没有用
+ */
+ public static void loadAlarmConfig(){
+ String configvalues=Util.getSystemProperties("persist.sys.alarmConfig","");
+ String[] values=configvalues.split(",");
+ if (values.length>0){
+ for (int i=0; i< values.length;i++)
+ {
+ for (Runtime.AlarmType at: Runtime.AlarmType.values()) {
+ if (values[i].trim().equals(at.name())){
+ ConfigAlarm(at,true);
+ break;
+ }
+ }
+ }
+ }
+ dumpAlarmConfig();
+ }
+
+ public static void ConfigAlarm(Runtime.AlarmType alarmType,boolean enabled){
+ AlarmConfiglist.put(alarmType.ordinal(),enabled);
+ }
+ public static void dumpAlarmConfig(){
+ for (int i=0;i<AlarmConfiglist.size();i++) {
+ ICLogger.i(Runtime.AlarmType.values()[i].name()+" "+AlarmConfiglist.get(i));
+ }
+ }
+ private static HashMap<Integer,Boolean> AlarmConfiglist;
+ static {
+ AlarmConfiglist=new HashMap<Integer,Boolean>();
+ AlarmConfiglist.put(Runtime.AlarmType.ALARM_SOS.ordinal(),true);
+ AlarmConfiglist.put(Runtime.AlarmType.ALARM_LOWBATTERY.ordinal(),true);
+ AlarmConfiglist.put(Runtime.AlarmType.ALARM_ANTIOFF.ordinal(),false);
+ AlarmConfiglist.put(Runtime.AlarmType.ALARM_WEARED.ordinal(),false);
+ AlarmConfiglist.put(Runtime.AlarmType.ALARM_CUTOFF.ordinal(),false);
+ AlarmConfiglist.put(Runtime.AlarmType.ALARM_FALL.ordinal(),false);
+ AlarmConfiglist.put(Runtime.AlarmType.ALARM_ABNORMAL_HEART_RATE.ordinal(),false);
+ AlarmConfiglist.put(Runtime.AlarmType.ALARM_HEART_RATE_HIGH.ordinal(),false);
+ AlarmConfiglist.put(Runtime.AlarmType.ALARM_HEART_RATE_LOW.ordinal(),false);
+ AlarmConfiglist.put(Runtime.AlarmType.ALARM_BPH_HIGH.ordinal(),false);
+ AlarmConfiglist.put(Runtime.AlarmType.ALARM_BPH_LOW.ordinal(),false);
+ AlarmConfiglist.put(Runtime.AlarmType.ALARM_BPL_HIGH.ordinal(),false);
+ AlarmConfiglist.put(Runtime.AlarmType.ALARM_BPL_LOW.ordinal(),false);
+ AlarmConfiglist.put(Runtime.AlarmType.ALARM_SEDENTARY.ordinal(),false);
+ AlarmConfiglist.put(Runtime.AlarmType.ALARM_ILLEGAL_CUTOFF.ordinal(),false);
+ AlarmConfiglist.put(Runtime.AlarmType.ALARM_LOCK_WATCH.ordinal(),false);
+ AlarmConfiglist.put(Runtime.AlarmType.ALARM_TEMP_HIGH.ordinal(),false);
+ AlarmConfiglist.put(Runtime.AlarmType.ALARM_TEMP_LOW.ordinal(),false);
+ AlarmConfiglist.put(Runtime.AlarmType.ALARM_POWER_OFF.ordinal(),true);
+ AlarmConfiglist.put(Runtime.AlarmType.ALARM_ESCAPE.ordinal(),false);
+ AlarmConfiglist.put(Runtime.AlarmType.ALARM_NONE.ordinal(),false);
+ AlarmConfiglist.put(Runtime.AlarmType.ALARM_REMOVE_SOS.ordinal(),true);
+ }
+
+ public static boolean isAlarmTypeEnabled(Runtime.AlarmType alarmType){
+
+ boolean en=false;
+ if (AlarmConfiglist.containsKey(alarmType.ordinal())){
+ en=AlarmConfiglist.get(alarmType.ordinal());
+ }
+ return en;
+ }
+ public static boolean needWaterMark(){
+ String customname=getSystemProperties("persist.sys.needWaterMark","true");
+ if(customname.trim().equals("true")){
+ return true;
+ }else
+ return false;
+ }
+}
+