From: snickersun Date: Thu, 16 Jul 2020 10:09:15 +0000 (+0800) Subject: release V452 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.js?a=commitdiff_plain;h=0a8e9af3d0d038e3d26ab8be1a48bfaf3ffb030c;p=protocol_srv.git release V452 1、换antioff 报警声 2、心率血压上报添加血氧 3、低电压报警播放声音 --- diff --git a/app/release/ICSer_V445_2007141023_release.apk b/app/release/ICSer_V452_2007161657_release.apk similarity index 78% rename from app/release/ICSer_V445_2007141023_release.apk rename to app/release/ICSer_V452_2007161657_release.apk index 8ee46f3d..091d0a2c 100644 Binary files a/app/release/ICSer_V445_2007141023_release.apk and b/app/release/ICSer_V452_2007161657_release.apk differ diff --git a/app/src/main/assets/antioff.mp3 b/app/src/main/assets/antioff.mp3 new file mode 100644 index 00000000..791a118a Binary files /dev/null and b/app/src/main/assets/antioff.mp3 differ diff --git a/app/src/main/java/com/enqualcomm/support/Constants.java b/app/src/main/java/com/enqualcomm/support/Constants.java index b9ce84ee..22bb3472 100644 --- a/app/src/main/java/com/enqualcomm/support/Constants.java +++ b/app/src/main/java/com/enqualcomm/support/Constants.java @@ -214,6 +214,7 @@ public interface Constants { public static final String key_ppg="ppg"; public static final String key_bph="bph"; public static final String key_bpl="bpl"; + public static final String key_spo2="sp02"; public static final int NEW_MEDIA_PUSH = 100; @@ -300,6 +301,13 @@ public interface Constants { public static final String KEY_TEMP_BODY = "body"; // double 体温 public static final String KEY_TEMP_WRIST= "wrist"; // double 腕温 + public static String ACTION_ANTI_OFF = "com.ic.ACTION_STRIP"; + public static String KEY_ANTI_EVENT="eventID"; //integer eventID =1 脱落, eventID =0 佩戴 + + + public static String ACTION_BATTERYLOW = "com.ic.ACTION_BATTERYLOW"; + public static String KEY_BATTERY_EVENT="eventID"; //integer eventID =1 battery low, eventID =0 解除 + } diff --git a/app/src/main/java/com/enqualcomm/support/service/AntiMonitorService.java b/app/src/main/java/com/enqualcomm/support/service/AntiMonitorService.java index 1b2f33c1..698eb839 100644 --- a/app/src/main/java/com/enqualcomm/support/service/AntiMonitorService.java +++ b/app/src/main/java/com/enqualcomm/support/service/AntiMonitorService.java @@ -6,6 +6,8 @@ import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; + +import android.os.Handler; import android.os.Message; import android.os.PowerManager; @@ -18,11 +20,9 @@ import com.enqualcomm.support.utils.ICLogger; import com.ic.protocols.protocolAPIHelper; -import java.util.Timer; -import java.util.TimerTask; -import java.util.concurrent.ScheduledThreadPoolExecutor; - -import static java.lang.Thread.*; +import static com.enqualcomm.support.Constants.ACTION_ANTI_OFF; +import static com.enqualcomm.support.Constants.KEY_ANTI_EVENT; +import static java.lang.Thread.sleep; public class AntiMonitorService extends AbstractInvokeHandlerService { @@ -41,14 +41,42 @@ public class AntiMonitorService extends AbstractInvokeHandlerService { private static long anti_event_receivedTime=0; private static int last_send_antoff_event=-1; private AudioService mAudioService=null; - - + private Handler mHandler=null; + PowerManager.WakeLock mWakeLock = null; + public AntiMonitorService(){ + if (mHandler==null) { + mHandler = new Handler() { + public void handleMessage(Message msg) { + super.handleMessage(msg); + if (msg.what == 100) { + + ICLogger.i("release WakeLock!"); + if (mWakeLock != null && mWakeLock.isHeld()) { + mWakeLock.release(); + ICLogger.i("release WakeLock!"); + } + + }else if (msg.what == 200){ + if( mAudioService!=null) + mAudioService.stop(); + } + } + }; + } + if (mWakeLock==null) { + PowerManager mPowerManager = (PowerManager) CoreService.getInstance().getSystemService(Context.POWER_SERVICE); +// mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, AntiMonitorService.class.getSimpleName()); + mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, AntiMonitorService.class.getSimpleName()); + } + } private void play_notify(){ if (this.mAudioService == null) this.mAudioService = new AudioService(); - this.mAudioService.play(mContext.getAssets(), "warning.mp3"); + this.mAudioService.play(mContext.getAssets(), "antioff.mp3"); + if(mHandler!=null) + mHandler.sendEmptyMessageDelayed(200,5000); } private void send_antiof_event(){ @@ -60,7 +88,7 @@ public class AntiMonitorService extends AbstractInvokeHandlerService { if (current_anti_status==0){ //佩戴 if(Config.needBroadcastAntiAlarm) { - play_notify(); + // play_notify(); send_anti_event_broadcast(0); } mRuntime.setAlarmType(Runtime.AlarmType.ALARM_WEARED); @@ -77,6 +105,11 @@ public class AntiMonitorService extends AbstractInvokeHandlerService { if(Config.needBroadcastAntiAlarm) { play_notify(); screen_on(); + try { + sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + }//delay一会儿再发消息,以屏没有来得急亮起,免界面不响应。 send_anti_event_broadcast(1); } mRuntime.setAlarmType(Runtime.AlarmType.ALARM_ANTIOFF); @@ -140,8 +173,6 @@ public class AntiMonitorService extends AbstractInvokeHandlerService { } } - private String ACTION_ANTI_OFF = "com.ic.ACTION_STRIP"; - private String KEY_ANTI_EVENT="eventID"; //integer eventID =1 脱落, eventID =0 佩戴 private void send_anti_event_broadcast(int antioff){ @@ -153,9 +184,8 @@ public class AntiMonitorService extends AbstractInvokeHandlerService { } private void screen_on(){ - PowerManager mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); - PowerManager.WakeLock mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "tag"); - mWakeLock.acquire(1*1000);//亮屏5秒 + mWakeLock.acquire(5*1000);//亮屏5秒 + mHandler.sendEmptyMessageDelayed(100,2000); } private SensorEventListener mSensorEventListener = new SensorEventListener() { diff --git a/app/src/main/java/com/enqualcomm/support/service/HeartRateManager.java b/app/src/main/java/com/enqualcomm/support/service/HeartRateManager.java index 402830b5..735b91e4 100644 --- a/app/src/main/java/com/enqualcomm/support/service/HeartRateManager.java +++ b/app/src/main/java/com/enqualcomm/support/service/HeartRateManager.java @@ -33,6 +33,7 @@ import static com.enqualcomm.support.Constants.MSG_WHAT_PPG; import static com.enqualcomm.support.Constants.key_bph; import static com.enqualcomm.support.Constants.key_bpl; import static com.enqualcomm.support.Constants.key_ppg; +import static com.enqualcomm.support.Constants.key_spo2; public class HeartRateManager extends AbstractInvokeHandlerService { private int mNetworkType; @@ -312,7 +313,8 @@ public static void triggerPPGtest(){ String ppg = bundle3.getString(key_ppg); String bph = bundle3.getString(key_bph); String bpl = bundle3.getString(key_bpl); - if (ppg == null || bph == null || bpl==null || ppg.isEmpty()||bph.isEmpty()||bpl.isEmpty()) { + String spo2 = bundle3.getString(key_spo2); + if (ppg == null || bph == null || bpl==null || spo2==null ||ppg.isEmpty()||bph.isEmpty()||bpl.isEmpty()||spo2.isEmpty()) { ICLogger.i("MSG_WHAT_PPG Data is null or empty ! Skip!"); callback(message.replyTo, Constants.RESULT_ERROR); @@ -320,7 +322,7 @@ public static void triggerPPGtest(){ } - String PPGDATA = protocolAPIHelper.getPPG_ECG_MSG(Integer.valueOf(ppg),Integer.valueOf(bph),Integer.valueOf(bpl)); + String PPGDATA = protocolAPIHelper.getPPG_ECG_MSG(Integer.valueOf(ppg),Integer.valueOf(bph),Integer.valueOf(bpl),Integer.valueOf(spo2)); if (((NettyConnection)connection).isServerConnected()) { connection.send(protocolAPIHelper.genStringMessage("APHT", PPGDATA)); ICLogger.i("Send PPG " + PPGDATA); diff --git a/app/src/main/java/com/enqualcomm/support/utils/BatteryUtil.java b/app/src/main/java/com/enqualcomm/support/utils/BatteryUtil.java index ced27820..c34f93d4 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/BatteryUtil.java +++ b/app/src/main/java/com/enqualcomm/support/utils/BatteryUtil.java @@ -7,8 +7,14 @@ import android.content.Intent; import android.content.IntentFilter; import android.os.BatteryManager; import android.os.Build; +import android.os.Handler; +import android.os.Message; +import android.os.PowerManager; import com.enqualcomm.support.Config; +import com.enqualcomm.support.CoreService; +import com.enqualcomm.support.service.AntiMonitorService; +import com.enqualcomm.support.service.AudioService; import com.ic.protocols.protocolAPIHelper; import com.enqualcomm.support.bean.Runtime; @@ -22,6 +28,8 @@ import static android.os.BatteryManager.EXTRA_LEVEL; import static android.os.BatteryManager.EXTRA_SCALE; import static android.os.BatteryManager.EXTRA_STATUS; import static android.os.BatteryManager.EXTRA_VOLTAGE; +import static com.enqualcomm.support.Constants.ACTION_BATTERYLOW; +import static com.enqualcomm.support.Constants.KEY_BATTERY_EVENT; public class BatteryUtil { private BroadcastReceiver batteryChangedReceiver = new BroadcastReceiver() { @@ -73,18 +81,35 @@ public class BatteryUtil { mRuntime.setBattery(String.format("%03d",batLevel)); mRuntime.setHaveBatteryChange(false); mRuntime.setBatteryLow(false); - } else if (batLevel<25 && batLevel >= 5) { + } else if (batLevel<25 && batLevel >= 15) { mRuntime.setBattery(String.format("%03d",batLevel)); mRuntime.setHaveBatteryChange(true); + + } else if (batLevel<15 && batLevel >= 5) { + mRuntime.setBattery(String.format("%03d",batLevel)); + mRuntime.setHaveBatteryChange(true); + mRuntime.setBatteryLow(true); + + if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","BatteryLow less than 15%!"); + send_batterylow_event_broadcast(param1Context,1); + play_waning_notify(param1Context); + mRuntime.setAlarmType(Runtime.AlarmType.ALARM_LOWBATTERY); + //trigger AP10 报警定位 + connection.send(protocolAPIHelper.genStringMessage("AP10",protocolAPIHelper.getWarningMSG(mRuntime))); + } else { mRuntime.setBattery(String.format("%03d",batLevel)); mRuntime.setHaveBatteryChange(true); mRuntime.setBatteryLow(true); - if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","BatteryLow !"); + if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","BatteryLow less than 5% !"); + + send_batterylow_event_broadcast(param1Context,1); + play_waning_notify(param1Context); mRuntime.setAlarmType(Runtime.AlarmType.ALARM_LOWBATTERY); //trigger AP10 报警定位 connection.send(protocolAPIHelper.genStringMessage("AP10",protocolAPIHelper.getWarningMSG(mRuntime))); + } }else if (Intent.ACTION_BATTERY_LOW.equals(intent.getAction())) { @@ -97,7 +122,7 @@ public class BatteryUtil { }else if (Intent.ACTION_BATTERY_OKAY.equals(intent.getAction())){ ICLogger.i("Battery OKAY !"); if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","Battery OKAY !"); - + send_batterylow_event_broadcast(param1Context,0); }else if (Intent.ACTION_POWER_CONNECTED.equals(intent.getAction())){ ICLogger.i("ACTION_POWER_CONNECTED !"); mRuntime.setPowerConnected(true); @@ -117,7 +142,24 @@ public class BatteryUtil { } } }; - + private AudioService mAudioService=null; + private Handler mHandler=null; + PowerManager.WakeLock mWakeLock = null; + + private void play_waning_notify(Context context){ + + if (this.mAudioService == null) + this.mAudioService = new AudioService(); + + this.mAudioService.play(context.getAssets(), "warning.mp3"); + } + private void send_batterylow_event_broadcast(Context context,int batlow){ + + Intent intent=new Intent(); + intent.setAction(ACTION_BATTERYLOW); + intent.putExtra(KEY_BATTERY_EVENT,batlow); + context.sendBroadcast(intent); + } private StringBuffer mBuffer; Runtime mRuntime; @@ -125,6 +167,28 @@ public class BatteryUtil { public BatteryUtil(Runtime paramRuntime,Connection _connection) { this.mRuntime = paramRuntime; connection = _connection; + + if (mHandler==null) { + mHandler = new Handler() { + public void handleMessage(Message msg) { + super.handleMessage(msg); + if (msg.what == 100) { + + if (mWakeLock != null && mWakeLock.isHeld()) { + mWakeLock.release(); + } + }else if (msg.what == 200){ + if( mAudioService!=null) + mAudioService.stop(); + } + } + }; + } + if (mWakeLock==null) { + PowerManager mPowerManager = (PowerManager) CoreService.getInstance().getSystemService(Context.POWER_SERVICE); + mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, AntiMonitorService.class.getSimpleName()); + } + } public void registerBroadReceiver() { diff --git a/app/version_code.properties b/app/version_code.properties index a6432c57..5bfb822e 100644 --- a/app/version_code.properties +++ b/app/version_code.properties @@ -1,2 +1,2 @@ -#Tue Jul 14 10:23:08 CST 2020 -VERSION_CODE=445 +#Thu Jul 16 16:57:07 CST 2020 +VERSION_CODE=452