-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":515,"versionName":"2009032133","enabled":true,"outputFile":"ICSer_V515_2009032133_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V515_2009032133_release.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":516,"versionName":"2009051621","enabled":true,"outputFile":"ICSer_V516_2009051621_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V516_2009051621_release.apk","properties":{}}]
\ No newline at end of file
import com.enqualcomm.support.bean.SleepInfo;\r
import com.enqualcomm.support.bean.SleepRecord;\r
import com.enqualcomm.support.service.AntiMonitorService;\r
+import com.enqualcomm.support.service.AudioService;\r
import com.enqualcomm.support.utils.CellInfoUtil;\r
import com.enqualcomm.support.utils.DeviceInfoUtil;\r
import com.enqualcomm.support.utils.LedUtil;\r
import static com.enqualcomm.support.Constants.TEMP_ALARM;\r
import static com.enqualcomm.support.bean.ICLocation.*;\r
import static com.ic.protocols.protocolAPIHelper.getTemperatureMSG;\r
+import static java.lang.Thread.sleep;\r
\r
\r
public class CoreService extends Service {\r
if(runtime.Anti_off_flag>0 && Config.needAllwaysAlarmAntiOff){\r
runtime.Anti_off_flag++;\r
WakeLockUtil.ScreenOnWakeLockTemperary(runtime.getContextProxy().context);\r
- antiservice.send_anti_event_broadcast(1);\r
\r
+ if (Config.A9_noBroadCastActionStrip) {\r
+ if(Config.needBroadcastAntiAlarm) {\r
+\r
+ AudioService.getInstance().play(runtime.getContextProxy().context.getAssets(), "antioff.mp3");\r
+\r
+ new Handler().postDelayed(new Runnable() {\r
+ @Override\r
+ public void run() {\r
+ AudioService.getInstance().stop();\r
+ }\r
+ },5000);\r
+ VibrateUtil.getInstance(runtime.getContextProxy().context).VibrateOnOnce(true);\r
+\r
+ try {\r
+ sleep(1000);\r
+ } catch (InterruptedException e) {\r
+ e.printStackTrace();\r
+ }//delay一会儿再发消息,以屏没有来得急亮起,免界面不响应。\r
+ antiservice.send_anti_event_broadcast(1);\r
+ }\r
+\r
+ }\r
}\r
\r
}\r
import android.support.v7.widget.LinearLayoutManager;\r
import android.support.v7.widget.RecyclerView;\r
import android.view.View;\r
+import android.view.WindowManager;\r
import android.widget.TextView;\r
\r
import com.enqualcomm.support.NMEAListener.location_callback;\r
mStar.setText("0 in 0/ inMap 0");\r
mHoop.setText("0.0米");\r
mSearchCount.setText("0秒");\r
+ getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);\r
}\r
\r
@Override\r
}\r
return entity;\r
}\r
- PowerManager.WakeLock screenOnWakelock=null;\r
+\r
@Override\r
protected void onResume() {\r
super.onResume();\r
NMEAListener.set_callback(this);\r
- if (screenOnWakelock==null)\r
- screenOnWakelock = WakeLockUtil.getScreenOnWakeLock(this,GPSActivity.class.getSimpleName());\r
+\r
}\r
\r
@Override\r
protected void onPause() {\r
super.onPause();\r
showmessage=false;\r
- if(screenOnWakelock!=null) {\r
- if (screenOnWakelock.isHeld()) {\r
- screenOnWakelock.release();\r
- }\r
- screenOnWakelock=null;\r
- }\r
\r
}\r
}\r
import java.util.List;\r
import java.util.concurrent.TimeUnit;\r
\r
-import rx.Observable;\r
-import rx.Single;\r
-import rx.android.schedulers.AndroidSchedulers;\r
-import rx.functions.Action1;\r
-\r
import static android.net.wifi.WifiManager.WIFI_STATE_DISABLED;\r
import static android.net.wifi.WifiManager.WIFI_STATE_DISABLING;\r
import static android.net.wifi.WifiManager.WIFI_STATE_ENABLED;\r
// Single.just(null).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<Object>() {\r
// public void call(Object param1Object) {\r
\r
- Observable.timer(500L, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<Long>() {\r
- public void call(Long param1Long) {\r
-\r
+ new Handler().postDelayed(new Runnable() {\r
+ @Override\r
+ public void run() {\r
//由于wifi状态不好确认客户是如何设置的,干脆只有屏幕灭的时候才考虑关闭wifi ,防止在开启屏幕用来视频的时候被后台关掉\r
ICLogger.i("setWifiEnabled false");\r
// if(SimSignalUtil.isScreenON(runtime.getContextProxy().context)==false) {\r
\r
\r
}\r
-\r
- });\r
+ },500);\r
\r
}else{\r
ICLogger.i("mMyWifiListener is null skip callback");\r
ALARM_LOCK_WATCH,\r
ALARM_TEMP_HIGH,\r
ALARM_TEMP_LOW,\r
+ ALARM_POWER_OFF,\r
ALARM_NONE,\r
};\r
+\r
+ private AlarmType g_alarm=AlarmType.ALARM_NONE;\r
/***\r
* 00为报警状态,00为无任何报警(01:SOS,02:低电,03:脱落报警,04:佩戴提醒,05:剪断报警,06:跌倒报警,\r
* 07:心率异常, 08:心率过高, 09:心率过低,10:收缩压过高,11:收缩压过低,12:舒张压过高,13:舒张压过低,\r
*/\r
public void setAlarmType(AlarmType alarm){\r
// if ( !fall && !lowbattery && !sos && antioff)\r
-\r
+ g_alarm=alarm;\r
switch (alarm){\r
case ALARM_SOS:\r
alarmType="01";\r
case ALARM_TEMP_LOW:\r
alarmType="18";\r
break;\r
+ case ALARM_POWER_OFF:\r
case ALARM_NONE:\r
default:\r
alarmType="00";\r
return sb.toString();\r
}\r
\r
- public String getFZDDevStatus(){\r
- return "00000000";\r
+ public String fzdAlarmStatus="00000000";\r
+\r
+\r
+ /***\r
+ * 终端状态 00000000 ( 16 进\r
+ * 制) 用二进制字符串表示为\r
+ * 0000 0000 0000 0010 0000 0000 0000 0000 含义如下:\r
+ * 左边高 16bit 表示报警,右边低 16bit 表示状态. Bit 位(0 开始) 含义(1 有效)\r
+ * 0低电状态\r
+ * 1出围栏状态(目前没用到)\r
+ * 2进围栏状态(目前没用到)\r
+ * 3手环戴上取下状态\r
+ * 4手表运行静止状态\r
+ * 16SOS 报警\r
+ * 17低电报警\r
+ * 18出围栏报警(目前没用到)\r
+ * 19进围栏报警(目前没用到)\r
+ * 20手环拆除报警\r
+ * 21跌倒报警\r
+ * 22震动报警\r
+ * 23断电报警\r
+ * 24心率骤降报警\r
+ * 25车辆启动\r
+ * 比如 00200010,即表示00000000001000000000000000010000\r
+ * 这个项目需要支持防拆 20、00000000000100000000000000000000 0x 00100000 1048576\r
+ * 低电 17、00000000000000100000000000000000 0x 00020000 131072\r
+ * 离线 23、00000000100000000000000000000000 0x 00800000 8388608\r
+ * 逃逸报警 18\ 00000000000001000000000000000000 0x 00040000 262144\r
+ * 分别是第四位为 1,第 21 位为 1,对应 21 位是跌倒报警\r
+ * @param runtime\r
+ * @return\r
+ */\r
+ public String getFZDDevStatus(Runtime runtime){\r
+ String alarmType1="00000000";\r
+ switch (runtime.g_alarm){\r
+ case ALARM_SOS:\r
+ // alarmType1="01";\r
+ break;\r
+ case ALARM_LOWBATTERY:\r
+ alarmType1="00020000";\r
+ break;\r
+ case ALARM_ANTIOFF:\r
+ alarmType1="00100000";\r
+ break;\r
+ case ALARM_WEARED:\r
+// alarmType1="04";\r
+ break;\r
+ case ALARM_CUTOFF:\r
+// alarmType1="05";\r
+ break;\r
+ case ALARM_FALL:\r
+// alarmType1="06";\r
+ break;\r
+\r
+ case ALARM_ABNORMAL_HEART_RATE:\r
+// alarmType1="07";\r
+ break;\r
+\r
+ case ALARM_HEART_RATE_HIGH:\r
+// alarmType1="08";\r
+ break;\r
+\r
+ case ALARM_HEART_RATE_LOW:\r
+// alarmType1="09";\r
+ break;\r
+\r
+ case ALARM_BPH_HIGH:\r
+// alarmType1="10";\r
+ break;\r
+\r
+ case ALARM_BPH_LOW:\r
+// alarmType1="11";\r
+ break;\r
+\r
+ case ALARM_BPL_HIGH:\r
+// alarmType1="12";\r
+ break;\r
+\r
+ case ALARM_BPL_LOW:\r
+// alarmType1="13";\r
+ break;\r
+\r
+ case ALARM_SEDENTARY:\r
+// alarmType1="14";\r
+ break;\r
+\r
+ case ALARM_ILLEGAL_CUTOFF:\r
+// alarmType1="15";\r
+ break;\r
+\r
+ case ALARM_LOCK_WATCH:\r
+// alarmType1="16";\r
+ break;\r
+\r
+ case ALARM_TEMP_HIGH:\r
+// alarmType1="17";\r
+ break;\r
+\r
+ case ALARM_TEMP_LOW:\r
+// alarmType1="18";\r
+ break;\r
+ case ALARM_POWER_OFF:\r
+ alarmType1="00800000";\r
+ break;\r
+ case ALARM_NONE:\r
+ default:\r
+// alarmType1="00000000";\r
+ break;\r
+ }\r
+ fzdAlarmStatus=alarmType1;\r
+ return fzdAlarmStatus;\r
}\r
public String getGPSHeading(){\r
int headingi=(int)gpsp.getLocation().heading;\r
\r
private void screenOn(Context paramContext) {\r
final PowerManager.WakeLock wakelock = ((PowerManager)paramContext.getSystemService(Context.POWER_SERVICE)).newWakeLock(ACQUIRE_CAUSES_WAKEUP| SCREEN_DIM_WAKE_LOCK, ProcessReceiver.class.getSimpleName());\r
- wakelock.acquire();\r
- Observable.timer(5000L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
- public void call(Long param1Long) { wakelock.release(); }\r
- });\r
+ wakelock.acquire(5000);\r
+// Observable.timer(5000L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
+// public void call(Long param1Long) { wakelock.release(); }\r
+// });\r
}\r
\r
@Override\r
package com.enqualcomm.support.utils;\r
\r
import android.content.Context;\r
-import android.os.Handler;\r
-import android.os.Message;\r
import android.os.PowerManager;\r
\r
-import com.enqualcomm.support.service.AudioService;\r
-\r
-import java.util.Objects;\r
-import java.util.concurrent.TimeUnit;\r
-\r
-import rx.Observable;\r
-import rx.functions.Action1;\r
-\r
import static android.os.PowerManager.ACQUIRE_CAUSES_WAKEUP;\r
import static android.os.PowerManager.SCREEN_DIM_WAKE_LOCK;\r
\r
\r
public class WakeLockUtil {\r
\r
- public static PowerManager.WakeLock getScreenOnWakeLock(Context context, String tag) {\r
- PowerManager.WakeLock wakeLock = ((PowerManager)(context.getSystemService(Context.POWER_SERVICE))).newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, tag);\r
-// wakeLock.acquire(900000L);\r
- wakeLock.acquire();\r
- return wakeLock;\r
- }\r
- public static void ScreenOnWakeLockTemperary(Context context) {\r
+public static void ScreenOnWakeLockTemperary(Context context) {\r
final PowerManager.WakeLock wakelock = ((PowerManager)context.getSystemService(Context.POWER_SERVICE)).newWakeLock(ACQUIRE_CAUSES_WAKEUP| SCREEN_DIM_WAKE_LOCK, WakeLockUtil.class.getSimpleName());\r
- wakelock.acquire();\r
- new Handler().postDelayed(new Runnable() {\r
- @Override\r
- public void run() {\r
- wakelock.release();\r
- }\r
- },5000L);\r
-\r
+ wakelock.acquire(5000);\r
}\r
\r
}\r
.append(runtime.getBattery()).append(CMDSPLIT)\r
.append(runtime.getTotalStepCount()).append(CMDSPLIT)\r
.append(runtime.getRolltimes()).append(CMDSPLIT)\r
- .append(runtime.getFZDDevStatus()).append(CMDSPLIT)\r
+ .append(runtime.getFZDDevStatus(runtime)).append(CMDSPLIT)\r
.append(runtime.getFZDLBSMultiStationData()).append(CMDSPLIT)\r
.append(runtime.getFZDWifiData());\r
\r
.append(runtime.getBattery()).append(CMDSPLIT)\r
.append(runtime.getTotalStepCount()).append(CMDSPLIT)\r
.append(runtime.getRolltimes()).append(CMDSPLIT)\r
- .append(runtime.getFZDDevStatus()).append(CMDSPLIT)\r
+ .append(runtime.getFZDDevStatus(runtime)).append(CMDSPLIT)\r
.append(runtime.getFZDLBSMultiStationData()).append(CMDSPLIT)\r
.append(runtime.getFZDWifiData());\r
\r
-#Thu Sep 03 21:33:40 CST 2020\r
-VERSION_CODE=515\r
+#Sat Sep 05 16:21:32 CST 2020\r
+VERSION_CODE=516\r