优先使用MpAPP的心跳触发

serial
Matthew 1 year ago
parent 5052f3a755
commit fc6e835773

@ -95,7 +95,7 @@ public class MicroPhotoService extends Service {
public static final String ACTION_START = "com.xypower.mpapp.ACT_START"; public static final String ACTION_START = "com.xypower.mpapp.ACT_START";
public static final String ACTION_STOP = "com.xypower.mpapp.ACT_STOP"; public static final String ACTION_STOP = "com.xypower.mpapp.ACT_STOP";
public static final String ACTION_MAIN = "com.xypower.mpapp.ACT_MAIN"; public static final String ACTION_MAIN = "com.xypower.mpapp.ACT_MAIN";
private static final String ACTION_HEARTBEAT = "com.xypower.mpapp.ACT_HB"; private static final String ACTION_HEARTBEAT = MicroPhotoContext.ACTION_HEARTBEAT_MP;
private static final String ACTION_TAKE_PHOTO = "com.xypower.mpapp.ACT_TP"; private static final String ACTION_TAKE_PHOTO = "com.xypower.mpapp.ACT_TP";
private static final String ACTION_IMP_PUBKRY = "com.xypower.mpapp.ACT_IMP_PUBKEY"; private static final String ACTION_IMP_PUBKRY = "com.xypower.mpapp.ACT_IMP_PUBKEY";
@ -225,20 +225,7 @@ public class MicroPhotoService extends Service {
if (aci == null) { if (aci == null) {
break; break;
} }
/*
if (aci.getShowIntent().isBroadcast()) {
// alarmManager.cancel(aci.getShowIntent());
}
*/
} }
// alarmManager.cancel();
// boolean res = false;
// Environment.getExternalStoragePublicDirectory(String)
// registerHeartbeatTimer(getHeartbeatDuration());
enableGps(true); enableGps(true);
requestPosition(); requestPosition();

@ -25,6 +25,8 @@ public class MicroPhotoContext {
public static final String PACKAGE_NAME_MPAPP = "com.xypower.mpapp"; public static final String PACKAGE_NAME_MPAPP = "com.xypower.mpapp";
public static final String PACKAGE_NAME_MPMASTER = "com.xypower.mpmaster"; public static final String PACKAGE_NAME_MPMASTER = "com.xypower.mpmaster";
public static final String ACTION_HEARTBEAT_MP = "com.xypower.mpapp.ACT_HB";
public final static String DEFAULT_MASTER_URL = "http://180.166.218.222:40101/"; public final static String DEFAULT_MASTER_URL = "http://180.166.218.222:40101/";
public final static String MASTER_URL_CMDID = "cmdid"; public final static String MASTER_URL_CMDID = "cmdid";
public final static int DEFAULT_PROTOCOL = 0xFF00; public final static int DEFAULT_PROTOCOL = 0xFF00;

@ -114,6 +114,9 @@ public class MpMasterService extends Service {
private boolean mSeparateNetwork = false; private boolean mSeparateNetwork = false;
private PendingIntent mPreviousHB = null;
private long mPreviousHeartbeatTime = 0;
public MpMasterService() { public MpMasterService() {
} }
@Override @Override
@ -199,6 +202,9 @@ public class MpMasterService extends Service {
intentFilter.addAction(ACTION_MSG_BROADCAST); intentFilter.addAction(ACTION_MSG_BROADCAST);
intentFilter.addAction(ACTION_UPDATE_CONFIGS); intentFilter.addAction(ACTION_UPDATE_CONFIGS);
intentFilter.addAction(ACTION_UPD_OTA); intentFilter.addAction(ACTION_UPD_OTA);
if (!mSeparateNetwork) {
intentFilter.addAction(MicroPhotoContext.ACTION_HEARTBEAT_MP);
}
registerReceiver(mAlarmReceiver, intentFilter); registerReceiver(mAlarmReceiver, intentFilter);
} }
@ -400,6 +406,15 @@ public class MpMasterService extends Service {
mService.startMaster(); mService.startMaster();
mService.startMpApp(); mService.startMpApp();
} else if (TextUtils.equals(MicroPhotoContext.ACTION_HEARTBEAT_MP, action)) {
if (!mService.mSeparateNetwork && !mService.mMntnMode && !mService.mQuickHbMode) {
mService.logger.info("Heartbeat Timer Fired By MpAPP ACTION=" + action);
mService.registerHeartbeatTimer(mService.mPreviousHeartbeatTime + mService.mHeartbeatDuration * 1000);
mService.startMaster();
mService.startMpApp();
}
} else if (TextUtils.equals(ACTION_UPDATE_CONFIGS, action)) { } else if (TextUtils.equals(ACTION_UPDATE_CONFIGS, action)) {
int restart = intent.getIntExtra("restart", 0); int restart = intent.getIntExtra("restart", 0);
mService.logger.info("Update Config Fired ACTION=" + action + " restart=" + restart); mService.logger.info("Update Config Fired ACTION=" + action + " restart=" + restart);
@ -413,21 +428,9 @@ public class MpMasterService extends Service {
} }
} }
} }
private void registerHeartbeatTimer(int duration) {
int orgHeartbeatDuration = mHeartbeatDuration;
mHeartbeatDuration = duration;
if (orgHeartbeatDuration == 0) {
registerHeartbeatTimer();
}
}
private void registerHeartbeatTimer() { private void registerHeartbeatTimer() {
Intent alarmIntent = new Intent();
alarmIntent.setAction(ACTION_HEARTBEAT);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
long timeout = mHeartbeatDuration; long timeout = mHeartbeatDuration;
if (mMntnMode && mQuickHbMode) { if (mMntnMode && mQuickHbMode) {
timeout = mQuickHeartbeatDuration; timeout = mQuickHeartbeatDuration;
@ -435,7 +438,26 @@ public class MpMasterService extends Service {
} }
alarmManager.setExactAndAllowWhileIdle(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + timeout * 1000, pendingIntent); registerHeartbeatTimer(SystemClock.elapsedRealtime() + timeout * 1000);
}
private void registerHeartbeatTimer(long triggerTime) {
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
if (mPreviousHB != null) {
try {
alarmManager.cancel(mPreviousHB);
} catch (Exception ex) {
}
mPreviousHeartbeatTime = 0;
}
Intent alarmIntent = new Intent();
alarmIntent.setAction(ACTION_HEARTBEAT);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0);
mPreviousHB = pendingIntent;
mPreviousHeartbeatTime = triggerTime;
alarmManager.setExactAndAllowWhileIdle(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerTime, pendingIntent);
} }
@Override @Override

Loading…
Cancel
Save