diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index ed03619d..38cf727b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -61,6 +61,7 @@
tools:ignore="ProtectedPermissions" />
+
0) ? Integer.toString(appConfig.heartbeat) : "");
+ binding.packetSize.setText((appConfig.packetSize > 0) ? Integer.toString(appConfig.packetSize) : "");
+
this.binding.startServBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
@@ -263,7 +269,7 @@ public class MainActivity extends AppCompatActivity {
AppConfig curAppConfig = retrieveAndSaveAppConfig();
- startMicroPhotoService(MainActivity.this, appConfig);
+ startMicroPhotoService(MainActivity.this, appConfig, mMessenger);
binding.startServBtn.setEnabled(false);
binding.stopServBtn.setEnabled(true);
@@ -465,9 +471,39 @@ public class MainActivity extends AppCompatActivity {
}
});
+ binding.btnSendHb.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+
+ if (mMessenger != null) {
+ Message msg = Message.obtain();
+ msg.what = MicroPhotoService.MSG_WHAT_SENDING_HB;
+ try {
+ mMessenger.send(msg);
+ } catch(Exception e) {
+ }
+ }
+ }
+ });
+
+ binding.btnRestartApp.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Context context = v.getContext();
+ MicroPhotoService.restartApp(context, context.getPackageName());
+ }
+ });
+
+ binding.btnReboot.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ SysApi.reboot(v.getContext());
+ }
+ });
+
}
- public static void startMicroPhotoService(Context context, AppConfig curAppConfig) {
+ public static void startMicroPhotoService(Context context, AppConfig curAppConfig, Messenger messenger) {
if (TextUtils.isEmpty(curAppConfig.cmdid) || TextUtils.isEmpty(curAppConfig.server) || curAppConfig.port == 0) {
return;
@@ -479,7 +515,9 @@ public class MainActivity extends AppCompatActivity {
intent.putExtra("port", curAppConfig.port);
intent.putExtra("protocol", curAppConfig.protocol);
intent.putExtra("networkProtocol", curAppConfig.networkProtocol);
- // intent.putExtra("messenger", mMessenger);
+ if (messenger != null) {
+ intent.putExtra("messenger", messenger);
+ }
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
context.startForegroundService(intent);
@@ -581,6 +619,8 @@ public class MainActivity extends AppCompatActivity {
appConfig.port = jsonObject.getInt("Port");
appConfig.protocol = jsonObject.getInt("Protocol");
appConfig.networkProtocol = jsonObject.getInt("NetworkProtocol");
+ appConfig.heartbeat = jsonObject.optInt("heartbeat", 0);
+ appConfig.packetSize = jsonObject.optInt("packetSize", 0);
if (appConfig.protocol == 0) {
appConfig.protocol = DEFAULT_PROTOCOL;
diff --git a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java
index b3cae42a..8bd753ee 100644
--- a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java
+++ b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java
@@ -72,6 +72,8 @@ public class MicroPhotoService extends Service {
public final static int MSG_WHAT_SERVICE_STATUS_CHANGE = 30;
+ public final static int MSG_WHAT_SENDING_HB = 40;
+
public final static int MSG_WHAT_MAX = 1000;
private static final String ALARM_EVENT = "com.xinyingpower.mp.MicroPhotoService.AlarmReceiver";
@@ -837,31 +839,37 @@ public class MicroPhotoService extends Service {
@Override
public void run() {
if (rebootType == 0) {
- /*
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 = getPackageManager().getLaunchIntentForPackage(getApplication().getPackageName());
- LaunchIntent.putExtra("noDelay", 1);
- LaunchIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
- startActivity(LaunchIntent);
+ restartApp(context, context.getPackageName());
} else {
Log.w(TAG, "Recv REBOOT command");
- SysApi.reboot(getApplicationContext());
+ SysApi.reboot(MicroPhotoService.this.getApplicationContext());
}
}
};
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 void enableGps(boolean enabled) {
SysApi.enableGps(getApplicationContext(), enabled);
}
diff --git a/app/src/main/res/layout-land/activity_main.xml b/app/src/main/res/layout-land/activity_main.xml
index c3b501cd..63e5a89c 100644
--- a/app/src/main/res/layout-land/activity_main.xml
+++ b/app/src/main/res/layout-land/activity_main.xml
@@ -101,7 +101,7 @@
@@ -136,6 +136,7 @@
android:imeOptions="actionDone"
android:maxLines="1"
android:text="2048"
+ android:hint="@string/main_packet_size_default"
app:layout_constraintLeft_toRightOf="@+id/textViewPacketSize"
app:layout_constraintTop_toBottomOf="@+id/server" />
@@ -245,6 +246,33 @@
app:layout_constraintStart_toEndOf="@+id/takePhotoBtn3"
app:layout_constraintTop_toBottomOf="@+id/simchange" />
+
+
+
+
+
+
@@ -128,6 +128,7 @@
android:imeOptions="actionDone"
android:maxLines="1"
android:text="2048"
+ android:hint="@string/main_packet_size_default"
app:layout_constraintLeft_toRightOf="@+id/textViewPacketSize"
app:layout_constraintTop_toBottomOf="@+id/server" />
@@ -237,6 +238,33 @@
app:layout_constraintStart_toEndOf="@+id/takePhotoBtn3"
app:layout_constraintTop_toBottomOf="@+id/simchange" />
+
+
+
+
+
+