From 1c87e22bf94a61158d3966bc698fadf5a5ed4677 Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 26 Jun 2024 18:23:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96MpAPP=E9=87=8D=E5=90=AF?= =?UTF-8?q?=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xypower/mpapp/MainActivity.java | 2 +- .../com/xypower/mpapp/MicroPhotoService.java | 4 +++ .../com/xypower/common/MicroPhotoContext.java | 13 +++++++-- .../com/xypower/mpmaster/MpMasterService.java | 28 ++----------------- 4 files changed, 19 insertions(+), 28 deletions(-) diff --git a/app/src/main/java/com/xypower/mpapp/MainActivity.java b/app/src/main/java/com/xypower/mpapp/MainActivity.java index 8332f9b5..6f9b0c1f 100644 --- a/app/src/main/java/com/xypower/mpapp/MainActivity.java +++ b/app/src/main/java/com/xypower/mpapp/MainActivity.java @@ -165,8 +165,8 @@ public class MainActivity extends AppCompatActivity { } break; - } + } } }; // mMessenger = new Messenger(new Handler()); diff --git a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java index ac3de91a..330cbf67 100644 --- a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java +++ b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java @@ -82,6 +82,7 @@ public class MicroPhotoService extends Service { 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_RESTART = "com.xypower.mpapp.ACT_RESTART"; public static final String ACTION_MAIN = "com.xypower.mpapp.ACT_MAIN"; private static final String ACTION_HEARTBEAT = MicroPhotoContext.ACTION_HEARTBEAT_MP; private static final String ACTION_TAKE_PHOTO = "com.xypower.mpapp.ACT_TP"; @@ -172,6 +173,7 @@ public class MicroPhotoService extends Service { intentFilter.addAction(ACTION_IMP_PUBKRY); intentFilter.addAction(ACTION_TAKE_PHOTO_MANUALLY); intentFilter.addAction(ACTION_GPS_TIMEOUT); + intentFilter.addAction(ACTION_RESTART); // intentFilter.addAction(ACTION_HEARTBEAT_MANUALLY); // intentFilter.addAction(ACTION_MSG_BROADCAST); // intentFilter.addAction(ACTION_VIDEO_FINISHED); @@ -385,6 +387,8 @@ public class MicroPhotoService extends Service { ex.printStackTrace(); } mService.enableGps(false); + } else if (TextUtils.equals(ACTION_RESTART, action)) { + MicroPhotoService.restartApp(context.getApplicationContext(), MicroPhotoContext.PACKAGE_NAME_MPAPP); } } } diff --git a/common/src/main/java/com/xypower/common/MicroPhotoContext.java b/common/src/main/java/com/xypower/common/MicroPhotoContext.java index e440c40a..44255f45 100644 --- a/common/src/main/java/com/xypower/common/MicroPhotoContext.java +++ b/common/src/main/java/com/xypower/common/MicroPhotoContext.java @@ -32,6 +32,7 @@ public class MicroPhotoContext { public static final String PACKAGE_NAME_MPAPP = "com.xypower.mpapp"; public static final String PACKAGE_NAME_MPMASTER = "com.xypower.mpmaster"; public static final String ACTION_HEARTBEAT_MP = "com.xypower.mpapp.ACT_HB"; + public static final String ACTION_RESTART_MP = "com.xypower.mpapp.ACT_RESTART"; public final static String DEFAULT_MASTER_URL = "http://61.169.135.150:40101/"; public final static String MASTER_URL_CMDID = "cmdid"; @@ -416,9 +417,17 @@ public class MicroPhotoContext { */ - try { - SysApi.forceStopApp(context, packageName); + if (TextUtils.equals(packageName, PACKAGE_NAME_MPAPP)) { + + Intent intent = new Intent(ACTION_RESTART_MP); + intent.putExtra("noDelay", 1); + intent.setPackage(PACKAGE_NAME_MPAPP); + + context.sendBroadcast(intent); + } else { + SysApi.forceStopApp(context, packageName); + } Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); if (intent != null) { intent.putExtra("noDelay", 1); diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java b/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java index 4e5cde8e..7c6e7e37 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java @@ -78,11 +78,9 @@ public class MpMasterService extends Service { private static final String ACTION_HEARTBEAT = "com.xypower.mpmaster.ACT_HB"; private static final String ACTION_TAKE_PHOTO = "com.xypower.mpapp.ACT_TP"; + public static final String ACTION_MP_RESTART = "com.xypower.mpapp.ACT_START"; public static final String ACTION_IMP_PUBKRY = "com.xypower.mpapp.ACT_IMP_PUBKEY"; - private static final String EXTRA_PARAM_SCHEDULES = "Schedules"; - private static final String EXTRA_PARAM_SCHEDULE = "Schedule_"; - private static final String EXTRA_PARAM_TIME = "Time"; private static final String FOREGROUND_CHANNEL_ID = "foreground_channel_id"; private SmsSendReceiver mSmsSnedReceiver; @@ -514,7 +512,7 @@ public class MpMasterService extends Service { int restart = intent.getIntExtra("restart", 0); mService.logger.info("Update Config Fired ACTION=" + action + " restart=" + restart); if (restart != 0) { - mService.restartApp(context, context.getPackageName()); + MicroPhotoContext.restartApp(context, context.getPackageName()); } else { mService.loadConfig(); mService.registerHeartbeatTimer(); @@ -897,7 +895,7 @@ public class MpMasterService extends Service { if (rebootType == 0) { logger.warning("Recv REBOOT MpMst APP cmd"); Context context = MpMasterService.this.getApplicationContext(); - restartApp(context, context.getPackageName()); + MicroPhotoContext.restartApp(context, context.getPackageName()); } else { logger.warning("Recv RESET cmd"); @@ -908,26 +906,6 @@ public class MpMasterService extends Service { mHander.postDelayed(runnable, 1000); } - public static void restartApp(Context context, String packageName) { - /* - Context context = MicroPhotoService.this.getApplicationContext(); - Intent intent = getPackageManager().getLaunchIntentForPackage(context.getPackageName()); - - int noDelay = 1; - intent.putExtra("noDelay", noDelay); - PendingIntent restartIntent = PendingIntent.getActivity(context, 0, intent, 0); - AlarmManager mgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE); - mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 1000, restartIntent); // 1秒钟后重启应用 - System.exit(0); - - */ - - Intent LaunchIntent = context.getPackageManager().getLaunchIntentForPackage(packageName); - LaunchIntent.putExtra("noDelay", 1); - LaunchIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); - context.startActivity(LaunchIntent); - } - public int getActiveSlotIndex() { Context context = getApplicationContext(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {