XI.CHEN 4 weeks ago
commit bd3451f47c

@ -5,7 +5,7 @@ plugins {
// 10,00,000 major-minor-build // 10,00,000 major-minor-build
def AppMajorVersion = 1 def AppMajorVersion = 1
def AppMinorVersion = 3 def AppMinorVersion = 3
def AppBuildNumber = 175 def AppBuildNumber = 176
def AppVersionName = AppMajorVersion + "." + AppMinorVersion + "." + AppBuildNumber def AppVersionName = AppMajorVersion + "." + AppMinorVersion + "." + AppBuildNumber
def AppVersionCode = AppMajorVersion * 100000 + AppMinorVersion * 1000 + AppBuildNumber def AppVersionCode = AppMajorVersion * 100000 + AppMinorVersion * 1000 + AppBuildNumber

@ -136,13 +136,15 @@ public class MainActivity extends AppCompatActivity {
} }
else { else {
Intent resIntent = getPackageManager().getLaunchIntentForPackage(MicroPhotoContext.PACKAGE_NAME_MPRES); Intent resIntent = getPackageManager().getLaunchIntentForPackage(MicroPhotoContext.PACKAGE_NAME_MPRES);
resIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); if (resIntent != null) {
resIntent.putExtra("initres", 1); resIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
String sn = MicroPhotoService.getSerialNumber(); resIntent.putExtra("initres", 1);
if (!TextUtils.isEmpty(sn)) { String sn = MicroPhotoService.getSerialNumber();
resIntent.putExtra("sn", sn); if (!TextUtils.isEmpty(sn)) {
resIntent.putExtra("sn", sn);
}
startActivity(resIntent);
} }
startActivity(resIntent);
} }
} }

@ -4,7 +4,7 @@ plugins {
def AppMajorVersion = 1 def AppMajorVersion = 1
def AppMinorVersion = 1 def AppMinorVersion = 1
def AppBuildNumber = 32 def AppBuildNumber = 33
def AppVersionName = AppMajorVersion + "." + AppMinorVersion + "." + AppBuildNumber def AppVersionName = AppMajorVersion + "." + AppMinorVersion + "." + AppBuildNumber
def AppVersionCode = AppMajorVersion * 100000 + AppMinorVersion * 1000 + AppBuildNumber def AppVersionCode = AppMajorVersion * 100000 + AppMinorVersion * 1000 + AppBuildNumber

@ -22,6 +22,7 @@ import android.view.MenuItem;
import android.widget.TextView; import android.widget.TextView;
import com.dev.devapi.api.SysApi; import com.dev.devapi.api.SysApi;
import com.xypower.common.FilesUtils;
import com.xypower.common.MicroPhotoContext; import com.xypower.common.MicroPhotoContext;
import java.io.File; import java.io.File;
@ -45,9 +46,21 @@ public class MainActivity extends AppCompatActivity {
mLaunchTime = System.currentTimeMillis(); mLaunchTime = System.currentTimeMillis();
// Try to init config // Try to init config
MpMasterService.initMpMasterConfigurations(getApplicationContext()); // MpMasterService.initMpMasterConfigurations(getApplicationContext());
// MpMasterService.initMpAppConfigurations(getApplicationContext()); // MpMasterService.initMpAppConfigurations(getApplicationContext());
String appPath = MicroPhotoContext.buildMasterAppDir(getApplicationContext());
File appPathFile = new File(appPath);
File appCfgFile = new File(appPathFile, "data/Master.json");
if (!appCfgFile.exists()) {
Intent resIntent = getPackageManager().getLaunchIntentForPackage(MicroPhotoContext.PACKAGE_NAME_MPRES);
if (resIntent != null) {
resIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
resIntent.putExtra("initres", 2);
startActivity(resIntent);
}
}
ActionBar actionBar = getSupportActionBar(); ActionBar actionBar = getSupportActionBar();
mHandler = new Handler(); mHandler = new Handler();

@ -1417,7 +1417,7 @@ public class MpMasterService extends Service {
} }
} }
copyAssetsDir(context, "mpmst", dataPath.getAbsolutePath()); copyAssetsDir(context, "mpmst/data", dataPath.getAbsolutePath());
return true; return true;
} }

@ -5,7 +5,7 @@ plugins {
def AppMajorVersion = 1 def AppMajorVersion = 1
def AppMinorVersion = 0 def AppMinorVersion = 0
def AppBuildNumber = 10 def AppBuildNumber = 11
def ConfigProjectOwner = "HENAN_2024" def ConfigProjectOwner = "HENAN_2024"
def AppVersionName = AppMajorVersion + "." + AppMinorVersion + "." + AppBuildNumber def AppVersionName = AppMajorVersion + "." + AppMinorVersion + "." + AppBuildNumber

@ -1,11 +1,13 @@
package com.xypower.mpres; package com.xypower.mpres;
import android.app.ActivityManager;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.res.AssetManager; import android.content.res.AssetManager;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets; import androidx.core.graphics.Insets;
@ -24,35 +26,64 @@ import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStreamWriter; import java.io.OutputStreamWriter;
import java.util.List;
import java.util.concurrent.ExecutionException;
public class MainActivity extends AppCompatActivity { public class MainActivity extends AppCompatActivity {
private final static String TAG = "MPRES";
private Handler mHandler; private Handler mHandler;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); setContentView(R.layout.activity_main);
mHandler = new Handler();
Intent intent = getIntent(); Intent intent = getIntent();
int initres = intent.getIntExtra("initres", 0); int initres = intent.getIntExtra("initres", 0);
if (initres != 0) { if (initres == 1) {
mHandler = new Handler(); Log.i(TAG, "Init Config for MpApp");
final String sn = intent.getStringExtra("sn"); final String sn = intent.getStringExtra("sn");
final Context context = getApplicationContext();
Runnable runnable = new Runnable() { Runnable runnable = new Runnable() {
@Override @Override
public void run() { public void run() {
notifyMpApp();
try {
restartMpApp(getApplicationContext(), "FIRST Config Init");
sleep(100);
System.exit(0);
} catch (Exception ex) {
ex.printStackTrace();
}
} }
}; };
initMpAppConfigurations(getApplicationContext(), mHandler, sn, runnable); initMpAppConfigurations(context, mHandler, sn, runnable);
} } else if (initres == 2) {
} Log.i(TAG, "Init Config for MpMaster");
private void notifyMpApp() { final Context context = getApplicationContext();
restartMpApp(getApplicationContext(), "FIRST Config Init"); mHandler.postDelayed(new Runnable() {
sleep(100); @Override
System.exit(0); public void run() {
try {
if (initMpMasterConfigurations(context)) {
restartMpMasterApp(context);
}
} catch (Exception ex) {
ex.printStackTrace();
}
sleep(1000);
System.exit(0);
}
}, 0);
}
} }
public static boolean initMpAppConfigurations(final Context context, final Handler handler, final String sn, final Runnable runnable) { public static boolean initMpAppConfigurations(final Context context, final Handler handler, final String sn, final Runnable runnable) {
@ -169,7 +200,7 @@ public class MainActivity extends AppCompatActivity {
} }
} }
copyAssetsDir(context, "mpmst", dataPath.getAbsolutePath()); copyAssetsDir(context, "mpmst/data", dataPath.getAbsolutePath());
return true; return true;
} }
@ -262,7 +293,8 @@ public class MainActivity extends AppCompatActivity {
public static void restartMpApp(Context context, String reason) { public static void restartMpApp(Context context, String reason) {
SysApi.forceStopApp(context, MicroPhotoContext.PACKAGE_NAME_MPAPP); // SysApi.forceStopApp(context, MicroPhotoContext.PACKAGE_NAME_MPAPP);
killAppProcess(context, MicroPhotoContext.PACKAGE_NAME_MPAPP);
sleep(100); sleep(100);
try { try {
@ -279,4 +311,65 @@ public class MainActivity extends AppCompatActivity {
e.printStackTrace(); e.printStackTrace();
} }
} }
public static void restartMpMasterApp(Context context) {
killAppProcess(context, MicroPhotoContext.PACKAGE_NAME_MPMASTER);
sleep(50);
try {
Intent intent = context.getPackageManager().getLaunchIntentForPackage(MicroPhotoContext.PACKAGE_NAME_MPMASTER);
if (intent != null) {
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
} catch (Exception e) {
e.printStackTrace();
}
}
private static boolean killAppProcess(final Context context, String packageName) {
boolean killed = false;
try {
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> processes = am.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo rapi : processes) {
if (rapi.pkgList == null || rapi.pkgList.length == 0) {
continue;
}
for (String pkg : rapi.pkgList) {
if (TextUtils.equals(pkg, packageName)) {
killed = true;
android.os.Process.killProcess(rapi.pid);
break;
}
}
if (killed) {
break;
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
return killed;
}
private boolean killAppByService(final Context context, String packageName, String serviceClassName) {
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningServiceInfo> services = am.getRunningServices(Integer.MAX_VALUE);
boolean isRunning = false;
for (ActivityManager.RunningServiceInfo rsi : services) {
if (packageName.equalsIgnoreCase(rsi.service.getPackageName()) && TextUtils.equals(serviceClassName, rsi.service.getClassName())) {
isRunning = true;
break;
}
}
return isRunning;
}
} }
Loading…
Cancel
Save