修复配置相关bug

serial
BlueMatthew 2 years ago
parent db1f5f6fc4
commit 40fee8f988

@ -61,6 +61,7 @@
tools:ignore="ProtectedPermissions" /> tools:ignore="ProtectedPermissions" />
<uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.hardware.usb.accessory"/>
<application <application
android:allowBackup="true" android:allowBackup="true"

@ -31,7 +31,7 @@ public class BootBroadcastReceiver extends BroadcastReceiver {
MainActivity.AppConfig appConfig = MainActivity.getAppConfig(context); MainActivity.AppConfig appConfig = MainActivity.getAppConfig(context);
MainActivity.startMicroPhotoService(context, appConfig); MainActivity.startMicroPhotoService(context, appConfig, null);
/* /*
Intent mainIntent = new Intent(context, MainActivity.class); Intent mainIntent = new Intent(context, MainActivity.class);
mainIntent.putExtra("reboot", 1); mainIntent.putExtra("reboot", 1);

@ -1,6 +1,7 @@
package com.xypower.mpapp; package com.xypower.mpapp;
import android.Manifest; import android.Manifest;
import android.app.ActivityManager;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
@ -35,6 +36,7 @@ import android.view.View;
import android.view.WindowManager; import android.view.WindowManager;
import android.widget.Toast; import android.widget.Toast;
import com.dev.devapi.api.SysApi;
import com.dowse.camera.client.DSCameraManager; import com.dowse.camera.client.DSCameraManager;
import com.xypower.common.MicroPhotoContext; import com.xypower.common.MicroPhotoContext;
import com.xypower.mpapp.databinding.ActivityMainBinding; import com.xypower.mpapp.databinding.ActivityMainBinding;
@ -53,6 +55,7 @@ import java.io.UnsupportedEncodingException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.List;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
@ -201,7 +204,7 @@ public class MainActivity extends AppCompatActivity {
} }
}; };
mMessenger = new Messenger(new Handler()); // mMessenger = new Messenger(new Handler());
WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE); WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
Display defaultDisplay = windowManager.getDefaultDisplay(); Display defaultDisplay = windowManager.getDefaultDisplay();
@ -241,6 +244,9 @@ public class MainActivity extends AppCompatActivity {
if (appConfig.networkProtocol < binding.networkProtocol.getCount()) { if (appConfig.networkProtocol < binding.networkProtocol.getCount()) {
binding.networkProtocol.setSelection(appConfig.networkProtocol); binding.networkProtocol.setSelection(appConfig.networkProtocol);
} }
binding.heartbeat.setText((appConfig.heartbeat > 0) ? Integer.toString(appConfig.heartbeat) : "");
binding.packetSize.setText((appConfig.packetSize > 0) ? Integer.toString(appConfig.packetSize) : "");
this.binding.startServBtn.setOnClickListener(new View.OnClickListener() { this.binding.startServBtn.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
@ -263,7 +269,7 @@ public class MainActivity extends AppCompatActivity {
AppConfig curAppConfig = retrieveAndSaveAppConfig(); AppConfig curAppConfig = retrieveAndSaveAppConfig();
startMicroPhotoService(MainActivity.this, appConfig); startMicroPhotoService(MainActivity.this, appConfig, mMessenger);
binding.startServBtn.setEnabled(false); binding.startServBtn.setEnabled(false);
binding.stopServBtn.setEnabled(true); 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) { if (TextUtils.isEmpty(curAppConfig.cmdid) || TextUtils.isEmpty(curAppConfig.server) || curAppConfig.port == 0) {
return; return;
@ -479,7 +515,9 @@ public class MainActivity extends AppCompatActivity {
intent.putExtra("port", curAppConfig.port); intent.putExtra("port", curAppConfig.port);
intent.putExtra("protocol", curAppConfig.protocol); intent.putExtra("protocol", curAppConfig.protocol);
intent.putExtra("networkProtocol", curAppConfig.networkProtocol); 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) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
context.startForegroundService(intent); context.startForegroundService(intent);
@ -581,6 +619,8 @@ public class MainActivity extends AppCompatActivity {
appConfig.port = jsonObject.getInt("Port"); appConfig.port = jsonObject.getInt("Port");
appConfig.protocol = jsonObject.getInt("Protocol"); appConfig.protocol = jsonObject.getInt("Protocol");
appConfig.networkProtocol = jsonObject.getInt("NetworkProtocol"); appConfig.networkProtocol = jsonObject.getInt("NetworkProtocol");
appConfig.heartbeat = jsonObject.optInt("heartbeat", 0);
appConfig.packetSize = jsonObject.optInt("packetSize", 0);
if (appConfig.protocol == 0) { if (appConfig.protocol == 0) {
appConfig.protocol = DEFAULT_PROTOCOL; appConfig.protocol = DEFAULT_PROTOCOL;

@ -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_SERVICE_STATUS_CHANGE = 30;
public final static int MSG_WHAT_SENDING_HB = 40;
public final static int MSG_WHAT_MAX = 1000; public final static int MSG_WHAT_MAX = 1000;
private static final String ALARM_EVENT = "com.xinyingpower.mp.MicroPhotoService.AlarmReceiver"; private static final String ALARM_EVENT = "com.xinyingpower.mp.MicroPhotoService.AlarmReceiver";
@ -837,31 +839,37 @@ public class MicroPhotoService extends Service {
@Override @Override
public void run() { public void run() {
if (rebootType == 0) { if (rebootType == 0) {
/*
Context context = MicroPhotoService.this.getApplicationContext(); Context context = MicroPhotoService.this.getApplicationContext();
Intent intent = getPackageManager().getLaunchIntentForPackage(context.getPackageName()); restartApp(context, 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);
} else { } else {
Log.w(TAG, "Recv REBOOT command"); Log.w(TAG, "Recv REBOOT command");
SysApi.reboot(getApplicationContext()); SysApi.reboot(MicroPhotoService.this.getApplicationContext());
} }
} }
}; };
mHander.postDelayed(runnable, 1000); 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) { public void enableGps(boolean enabled) {
SysApi.enableGps(getApplicationContext(), enabled); SysApi.enableGps(getApplicationContext(), enabled);
} }

@ -101,7 +101,7 @@
<EditText <EditText
android:id="@+id/heartbeat" android:id="@+id/heartbeat"
android:layout_width="32dp" android:layout_width="48dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
@ -109,8 +109,8 @@
android:inputType="none|number" android:inputType="none|number"
android:imeOptions="actionDone" android:imeOptions="actionDone"
android:maxLines="1" android:maxLines="1"
android:text="10" android:text=""
android:hint="main_heartbeat" android:hint="@string/main_heartbeat_default"
app:layout_constraintStart_toEndOf="@+id/textViewHeartbeat" app:layout_constraintStart_toEndOf="@+id/textViewHeartbeat"
app:layout_constraintTop_toBottomOf="@+id/server" /> app:layout_constraintTop_toBottomOf="@+id/server" />
@ -136,6 +136,7 @@
android:imeOptions="actionDone" android:imeOptions="actionDone"
android:maxLines="1" android:maxLines="1"
android:text="2048" android:text="2048"
android:hint="@string/main_packet_size_default"
app:layout_constraintLeft_toRightOf="@+id/textViewPacketSize" app:layout_constraintLeft_toRightOf="@+id/textViewPacketSize"
app:layout_constraintTop_toBottomOf="@+id/server" /> app:layout_constraintTop_toBottomOf="@+id/server" />
@ -245,6 +246,33 @@
app:layout_constraintStart_toEndOf="@+id/takePhotoBtn3" app:layout_constraintStart_toEndOf="@+id/takePhotoBtn3"
app:layout_constraintTop_toBottomOf="@+id/simchange" /> app:layout_constraintTop_toBottomOf="@+id/simchange" />
<Button
android:id="@+id/btnSendHb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/main_send_hb"
android:layout_marginStart="8dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/takePhotoBtn" />
<Button
android:id="@+id/btnRestartApp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/main_restart_app"
android:layout_marginStart="8dp"
app:layout_constraintStart_toEndOf="@+id/btnSendHb"
app:layout_constraintTop_toBottomOf="@+id/takePhotoBtn" />
<Button
android:id="@+id/btnReboot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/main_reboot"
android:layout_marginStart="4dp"
app:layout_constraintStart_toEndOf="@+id/btnRestartApp"
app:layout_constraintTop_toBottomOf="@+id/takePhotoBtn" />
<Button <Button
android:id="@+id/gps" android:id="@+id/gps"
android:layout_width="wrap_content" android:layout_width="wrap_content"

@ -93,7 +93,7 @@
<EditText <EditText
android:id="@+id/heartbeat" android:id="@+id/heartbeat"
android:layout_width="32dp" android:layout_width="48dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
@ -102,7 +102,7 @@
android:imeOptions="actionDone" android:imeOptions="actionDone"
android:maxLines="1" android:maxLines="1"
android:text="10" android:text="10"
android:hint="main_heartbeat" android:hint="@string/main_heartbeat_default"
app:layout_constraintStart_toEndOf="@+id/textViewHeartbeat" app:layout_constraintStart_toEndOf="@+id/textViewHeartbeat"
app:layout_constraintTop_toBottomOf="@+id/server" /> app:layout_constraintTop_toBottomOf="@+id/server" />
@ -128,6 +128,7 @@
android:imeOptions="actionDone" android:imeOptions="actionDone"
android:maxLines="1" android:maxLines="1"
android:text="2048" android:text="2048"
android:hint="@string/main_packet_size_default"
app:layout_constraintLeft_toRightOf="@+id/textViewPacketSize" app:layout_constraintLeft_toRightOf="@+id/textViewPacketSize"
app:layout_constraintTop_toBottomOf="@+id/server" /> app:layout_constraintTop_toBottomOf="@+id/server" />
@ -237,6 +238,33 @@
app:layout_constraintStart_toEndOf="@+id/takePhotoBtn3" app:layout_constraintStart_toEndOf="@+id/takePhotoBtn3"
app:layout_constraintTop_toBottomOf="@+id/simchange" /> app:layout_constraintTop_toBottomOf="@+id/simchange" />
<Button
android:id="@+id/btnSendHb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/main_send_hb"
android:layout_marginStart="8dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/takePhotoBtn" />
<Button
android:id="@+id/btnRestartApp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/main_restart_app"
android:layout_marginStart="8dp"
app:layout_constraintStart_toEndOf="@+id/btnSendHb"
app:layout_constraintTop_toBottomOf="@+id/takePhotoBtn" />
<Button
android:id="@+id/btnReboot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/main_reboot"
android:layout_marginStart="4dp"
app:layout_constraintStart_toEndOf="@+id/btnRestartApp"
app:layout_constraintTop_toBottomOf="@+id/takePhotoBtn" />
<Button <Button
android:id="@+id/gps" android:id="@+id/gps"
android:layout_width="wrap_content" android:layout_width="wrap_content"

@ -2,8 +2,13 @@
<string name="app_name">MicroPhoto</string> <string name="app_name">MicroPhoto</string>
<string name="text_name_notification">Notification Name</string> <string name="text_name_notification">Notification Name</string>
<string name="main_heartbeat">心跳(分钟)</string> <string name="main_heartbeat">心跳(分钟)</string>
<string name="main_heartbeat_default">默认10</string>
<string name="main_packet_size">包大小</string> <string name="main_packet_size">包大小</string>
<string name="main_packet_size_default">默认2K</string>
<string name="main_server">支持域名自动转IP</string> <string name="main_server">支持域名自动转IP</string>
<string name="main_send_hb">心跳</string>
<string name="main_restart_app">重启APP</string>
<string name="main_reboot">重启设备</string>
<string name="activity_channel_title">通道设置</string> <string name="activity_channel_title">通道设置</string>
<string name="osd_left_top">左上 OSD</string> <string name="osd_left_top">左上 OSD</string>

Loading…
Cancel
Save