* 仅串口路径为空时才自动检测设备
* 设置界面可清除串口路径
This commit is contained in:
@@ -110,22 +110,29 @@ public class BuildingDashboardActivity extends FullscreenActivity {
|
||||
configUrl = urlPrefix + "/data/config.json";
|
||||
mainUrl = urlEndPoint.isEmpty() ? urlPrefix : urlPrefix + "/" + urlEndPoint;
|
||||
|
||||
Log.i(TAG, "Main: " + mainUrl);
|
||||
Log.i(TAG, "Config: " + configUrl);
|
||||
|
||||
configLoadHandler.post(configLoadRunnable);
|
||||
loadUrlWithRetry();
|
||||
}
|
||||
|
||||
private void initSerialPort() {
|
||||
String portPath = PreferenceConfiguration.getSerialPortPath(this);
|
||||
int baudRate = PreferenceConfiguration.getSerialPortBaudRate(this);
|
||||
|
||||
// 初始化串口检测器
|
||||
detector = new SerialPortDetector(portPath, baudRate);
|
||||
// 只有 portPath 为空时才进行串口检测
|
||||
if (TextUtils.isEmpty(portPath)) {
|
||||
int baudRate = PreferenceConfiguration.getSerialPortBaudRate(this);
|
||||
// 初始化串口检测器
|
||||
detector = new SerialPortDetector(portPath, baudRate);
|
||||
|
||||
// 每次启动都进行串口检测/验证
|
||||
// 参数 true 表示确保设备开机(发送两个命令)
|
||||
// 参数 false 表示仅检测串口(任一命令有响应即可)
|
||||
Log.i(TAG, "Starting serial port detection/verification...");
|
||||
startSerialPortDetection(true);
|
||||
Log.i(TAG, "Starting serial port detection/verification...");
|
||||
// 参数 true 表示确保设备开机(发送两个命令)
|
||||
// 参数 false 表示仅检测串口(任一命令有响应即可)
|
||||
startSerialPortDetection(true);
|
||||
} else {
|
||||
Log.i(TAG, "Using saved serial port path: " + portPath);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -276,6 +283,8 @@ public class BuildingDashboardActivity extends FullscreenActivity {
|
||||
WebSettings webSettings = binding.webview.getSettings();
|
||||
webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
|
||||
webSettings.setJavaScriptEnabled(true);
|
||||
// 允许媒体自动播放 (Android 8+ 必须)
|
||||
webSettings.setMediaPlaybackRequiresUserGesture(false);
|
||||
|
||||
// 禁用缩放相关设置
|
||||
webSettings.setTextZoom(100);
|
||||
|
||||
@@ -1,12 +1,16 @@
|
||||
package cn.ykbox.dashboard.activity;
|
||||
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.appcompat.app.ActionBar;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
|
||||
import cn.ykbox.dashboard.R;
|
||||
import cn.ykbox.dashboard.perferences.PreferenceConfiguration;
|
||||
|
||||
public class SettingsActivity extends AppCompatActivity {
|
||||
|
||||
@@ -30,6 +34,21 @@ public class SettingsActivity extends AppCompatActivity {
|
||||
@Override
|
||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
setPreferencesFromResource(R.xml.root_preferences, rootKey);
|
||||
|
||||
Preference clearDevicePref = findPreference("k_clear_device");
|
||||
if (clearDevicePref != null) {
|
||||
clearDevicePref.setOnPreferenceClickListener(preference -> {
|
||||
new AlertDialog.Builder(requireContext())
|
||||
.setTitle("确认清除")
|
||||
.setMessage("确定要清除当前串口设备路径吗?")
|
||||
.setPositiveButton("确定", (dialog, which) -> {
|
||||
PreferenceConfiguration.setSerialPortPath(requireContext(), "");
|
||||
})
|
||||
.setNegativeButton("取消", null)
|
||||
.show();
|
||||
return true;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -25,5 +25,9 @@
|
||||
app:title="串口波特率"
|
||||
app:defaultValue="9600"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
<Preference
|
||||
app:key="k_clear_device"
|
||||
app:title="清除设备"
|
||||
app:summary="清除当前串口设备路径, 下次启动时自动检测设备。" />
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
||||
Reference in New Issue
Block a user