From 33be977e5648f484bb8d9db0b79a75307eeebe4c Mon Sep 17 00:00:00 2001 From: Matthew Date: Sat, 6 Jul 2024 09:53:30 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=90=E7=BB=B4=E5=8A=9F=E8=83=BD=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E5=88=86=E7=BB=84=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xypower/mpapp/MicroPhotoService.java | 1 + mpmaster/src/main/AndroidManifest.xml | 14 +- .../xypower/mpmaster/DashboardActivity.java | 212 ++++++++++++++++++ .../com/xypower/mpmaster/MainActivity.java | 210 +++-------------- .../com/xypower/mpmaster/MpMasterService.java | 9 + .../main/res/layout/activity_dashboard.xml | 106 +++++++++ .../src/main/res/layout/activity_main.xml | 105 --------- mpmaster/src/main/res/menu/menu_main.xml | 24 ++ mpmaster/src/main/res/values/strings.xml | 4 +- 9 files changed, 399 insertions(+), 286 deletions(-) create mode 100644 mpmaster/src/main/java/com/xypower/mpmaster/DashboardActivity.java create mode 100644 mpmaster/src/main/res/layout/activity_dashboard.xml create mode 100644 mpmaster/src/main/res/menu/menu_main.xml diff --git a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java index b1adeb18..fb9cfb0a 100644 --- a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java +++ b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java @@ -1106,6 +1106,7 @@ public class MicroPhotoService extends Service { */ } + public void enableGps(boolean enabled) { if (enabled) { try { diff --git a/mpmaster/src/main/AndroidManifest.xml b/mpmaster/src/main/AndroidManifest.xml index 1e11038e..74f77bcb 100644 --- a/mpmaster/src/main/AndroidManifest.xml +++ b/mpmaster/src/main/AndroidManifest.xml @@ -13,7 +13,9 @@ - + + + + + android:process=":hotspot" /> schedules = new ArrayList<>(); +// long ts = System.currentTimeMillis() / 1000; +// long val = 0; +// val |= ((long) 1 << 16); +// val |= ((long) 255 << 8); +// val |= photoOrVideo ? 0L : 1L; +// +// schedules.add(Long.valueOf(val)); +// +// Intent intent1 = new Intent(); +// intent1.setAction(ACTION_TAKE_PHOTO); +// int cnt = schedules.size(); +// intent1.putExtra(EXTRA_PARAM_SCHEDULES, cnt); +// for (int idx = 0; idx < cnt; idx++) { +// intent1.putExtra(EXTRA_PARAM_SCHEDULE + idx, schedules.get(idx).longValue()); +// } +// intent1.putExtra(EXTRA_PARAM_TIME, 0); +// intent1.putExtra(EXTRA_PARAM_TAKING_TIME, ts); +// sendBroadcast(intent1); + + +// UpdateSysConfigUtil.getScheduless(1); + byte[] bytes = {1, 1, 2, 0, 0, 0, 23, 59}; + String photoSchedules = UpdateSysConfigUtil.getPhotoSchedules(1); + + byte[] decode = Base64.getDecoder().decode(photoSchedules); + System.out.println(decode); + + } + }); + + /* + mHandler.postDelayed(new Runnable() { + public void run() { + // HotspotManager.enableHotspot(getApplicationContext(), false); + // SysApi.openHotSpot(getApplicationContext()); + } + }, 5000); + + */ + + + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + int id = item.getItemId(); + //当点击不同的menu item 是执行不同的操作 + switch (id) { + case android.R.id.home: + { + finish(); + return false; + } + // break; + default: + break; + } + return super.onOptionsItemSelected(item); + } + +} \ No newline at end of file diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/MainActivity.java b/mpmaster/src/main/java/com/xypower/mpmaster/MainActivity.java index 955b4890..02f9a6d5 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/MainActivity.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/MainActivity.java @@ -15,6 +15,8 @@ import android.os.Handler; import android.os.StrictMode; import android.text.TextUtils; import android.view.KeyEvent; +import android.view.Menu; +import android.view.MenuItem; import android.view.View; import android.widget.Switch; import android.widget.TextView; @@ -62,183 +64,6 @@ public class MainActivity extends AppCompatActivity { MicroPhotoContext.AppConfig appConfig = MicroPhotoContext.getMpAppConfig(getApplicationContext()); ((TextView) findViewById((R.id.cmdid))).setText(TextUtils.isEmpty(appConfig.cmdid) ? "" : appConfig.cmdid); - findViewById(R.id.btnEnableCam3V3).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - SysApi.setCam3V3Enable(true); - } - }); - - findViewById(R.id.btnDisableCam3V3).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - SysApi.setCam3V3Enable(false); - } - }); - - findViewById(R.id.btnTurnOtgOn).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - SysApi.setOtgState(true); - } - }); - - findViewById(R.id.btnTurnOtgOff).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - SysApi.setOtgState(false); - } - }); - - findViewById(R.id.nrsec).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - SysApi.setSpiPowerOn(true); - } - }); - - findViewById(R.id.btnTurnAppOn).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - // SysApi.enableApp(v.getContext(), "abcd1234"); - - - } - }); - - findViewById(R.id.btnRestartMpAPP).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - MicroPhotoContext.restartMpApp(getApplicationContext()); - } - }); - - /* - findViewById(R.id.btnTurn485On).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - SysApi.setRS485Enable(true); - SysApi.set12VEnable(true); - } - }); - - findViewById(R.id.btnTurn485Off).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - SysApi.set12VEnable(false); - SysApi.setRS485Enable(false); - } - }); - - Switch sw = (Switch) findViewById(R.id.btn485ReadMode); - sw.setChecked(true); - findViewById(R.id.btn485ReadMode).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - Switch sw = (Switch) view; - if (sw.isChecked()) { - SysApi.set485ReadMode(); - } else { - SysApi.set485WriteMode(); - } - } - }); - - */ - - findViewById(R.id.sendsms).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { -// boolean gpsEnabled = LocationUtil.isGpsEnabled(MainActivity.this); -// System.out.printf("g" + gpsEnabled); -// LocationUtil.register(MainActivity.this, 0, 0, new LocationUtil.OnLocationChangeListener() { -// @Override -// public void getLastKnownLocation(Location location) { -// Log.e("xyh", "onLocationChanged: " + location.getLatitude()); -// } -// -// @Override -// public void onLocationChanged(Location location) { -// //位置信息变化时触发 -// Log.e("xyh", "定位方式:" + location.getProvider()); -// Log.e("xyh", "纬度:" + location.getLatitude()); -// Log.e("xyh", "经度:" + location.getLongitude()); -// Log.e("xyh", "海拔:" + location.getAltitude()); -// Log.e("xyh", "时间:" + location.getTime()); -// Log.e("xyh", "国家:" + LocationUtil.getCountryName(MainActivity.this, location.getLatitude(), location.getLongitude())); -// Log.e("xyh", "获取地理位置:" + LocationUtil.getAddress(MainActivity.this, location.getLatitude(), location.getLongitude())); -// Log.e("xyh", "所在地:" + LocationUtil.getLocality(MainActivity.this, location.getLatitude(), location.getLongitude())); -// Log.e("xyh", "所在街道:" + LocationUtil.getStreet(MainActivity.this, location.getLatitude(), location.getLongitude())); -// LocationUtil.unregister(); -// -// } -// -// @Override -// public void onStatusChanged(String provider, int status, Bundle extras) { -// System.out.println("dfsad"); -// } -// }); - -// SysApi.reboot(MainActivity.this); - -// DownloadUtils downloadUtils = new DownloadUtils(getApplicationContext(), "http://180.166.218.222:40101/upgrades/20240509_upd_663c857dbfcf7.apk", "test.apk"); - -// ActivityManager manager = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE); -// manager.restartPackage(context.getPackageName()); -// String ACTION_UPDATE_CONFIGS = "com.xypower.mpapp.ACT_UPD_CFG"; -// Intent intent = new Intent(); -// intent.setAction(ACTION_UPDATE_CONFIGS); -// intent.putExtra("restart", 1); -// // PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0); -// sendBroadcast(intent); -//// LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(context); -//// localBroadcastManager.sendBroadcast(intent); - - -// boolean photoOrVideo; -// photoOrVideo = true; -// List schedules = new ArrayList<>(); -// long ts = System.currentTimeMillis() / 1000; -// long val = 0; -// val |= ((long) 1 << 16); -// val |= ((long) 255 << 8); -// val |= photoOrVideo ? 0L : 1L; -// -// schedules.add(Long.valueOf(val)); -// -// Intent intent1 = new Intent(); -// intent1.setAction(ACTION_TAKE_PHOTO); -// int cnt = schedules.size(); -// intent1.putExtra(EXTRA_PARAM_SCHEDULES, cnt); -// for (int idx = 0; idx < cnt; idx++) { -// intent1.putExtra(EXTRA_PARAM_SCHEDULE + idx, schedules.get(idx).longValue()); -// } -// intent1.putExtra(EXTRA_PARAM_TIME, 0); -// intent1.putExtra(EXTRA_PARAM_TAKING_TIME, ts); -// sendBroadcast(intent1); - - -// UpdateSysConfigUtil.getScheduless(1); - byte[] bytes = {1, 1, 2, 0, 0, 0, 23, 59}; - String photoSchedules = UpdateSysConfigUtil.getPhotoSchedules(1); - - byte[] decode = Base64.getDecoder().decode(photoSchedules); - System.out.println(decode); - - } - }); - - /* - mHandler.postDelayed(new Runnable() { - public void run() { - // HotspotManager.enableHotspot(getApplicationContext(), false); - // SysApi.openHotSpot(getApplicationContext()); - } - }, 5000); - - */ - - startMicroPhotoService(getApplicationContext()); } @@ -286,5 +111,36 @@ public class MainActivity extends AppCompatActivity { return super.onKeyDown(keyCode, event); } + @Override + public boolean onCreateOptionsMenu(Menu menu) { + // Inflate the menu; this adds items to the action bar if it is present. + getMenuInflater().inflate(R.menu.menu_main, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + int id = item.getItemId(); + //当点击不同的menu item 是执行不同的操作 + switch (id) { + case R.id.action_dashboard: { + Intent intent = new Intent(getApplicationContext(), DashboardActivity.class); + startActivity(intent); + } + break; + case R.id.action_reboot_mp:{ + MicroPhotoContext.restartMpApp(getApplicationContext()); + } + break; + case R.id.action_reboot_mpmst:{ + MpMasterService.restartApp(getApplicationContext()); + } + break; + default: + break; + } + return super.onOptionsItemSelected(item); + } + } \ No newline at end of file diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java b/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java index 8f582063..90ac8dbc 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java @@ -982,6 +982,15 @@ public class MpMasterService extends Service { return 0; } + public static void restartApp(Context context) { + Intent intent = new Intent(context, MainActivity.class); + + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); + context.startActivity(intent); + + System.exit(0); + } + public native static int getInt(int cmd); public native static int setInt(int cmd, int val); public native static int[] getStats(long ts); diff --git a/mpmaster/src/main/res/layout/activity_dashboard.xml b/mpmaster/src/main/res/layout/activity_dashboard.xml new file mode 100644 index 00000000..4cd751d4 --- /dev/null +++ b/mpmaster/src/main/res/layout/activity_dashboard.xml @@ -0,0 +1,106 @@ + + + +