From 4cd0ccd53e192307a6265c009a6110cd6d37581c Mon Sep 17 00:00:00 2001 From: fengjignqi <15192412330@163.com> Date: Tue, 1 Sep 2026 15:02:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .codex_write_test.tmp | 1 + .../main/java/com/ckkj/water/AppConfig.java | 4 +- .../ckkj/water/device/AddDeviceActivity.java | 56 +++++++++++++++++ .../water/device/DeviceConnectActivity.java | 1 + .../ckkj/water/device/SelectWifiActivity.java | 60 ++++++++++++++++++- .../com/ckkj/water/login/LoginActivity.java | 17 ++++++ 6 files changed, 135 insertions(+), 4 deletions(-) create mode 100644 .codex_write_test.tmp diff --git a/.codex_write_test.tmp b/.codex_write_test.tmp new file mode 100644 index 0000000..46b085d --- /dev/null +++ b/.codex_write_test.tmp @@ -0,0 +1 @@ +write-ok diff --git a/app/src/main/java/com/ckkj/water/AppConfig.java b/app/src/main/java/com/ckkj/water/AppConfig.java index 2d7476a..112d546 100644 --- a/app/src/main/java/com/ckkj/water/AppConfig.java +++ b/app/src/main/java/com/ckkj/water/AppConfig.java @@ -21,8 +21,8 @@ public class AppConfig { // public static boolean IS_TEST_REQUEST = true; /**************************本地*******************************/ - public static String BASE_URL = "http://192.168.1.217:8082/";//后端本地测试 -// public static String BASE_URL = "http://47.97.217.123:8081/";//服务器测试 +// public static String BASE_URL = "http://192.168.1.217:8082/";//后端本地测试 + public static String BASE_URL = "http://47.97.217.123:8081/";//服务器测试 public static String BASE_URL_TWO = BASE_URL;//测试 public static String BASE_URL_THREE = BASE_URL;//测试 public static boolean IS_TEST_REQUEST = true; diff --git a/app/src/main/java/com/ckkj/water/device/AddDeviceActivity.java b/app/src/main/java/com/ckkj/water/device/AddDeviceActivity.java index 4ea181a..8ae4c59 100644 --- a/app/src/main/java/com/ckkj/water/device/AddDeviceActivity.java +++ b/app/src/main/java/com/ckkj/water/device/AddDeviceActivity.java @@ -13,6 +13,8 @@ import android.content.pm.PackageManager; import android.graphics.drawable.AnimationDrawable; import android.os.Build; import android.os.Bundle; +import android.os.Handler; +import android.os.Looper; import android.os.ParcelUuid; import android.text.TextUtils; import android.util.Log; @@ -66,6 +68,9 @@ import pub.devrel.easypermissions.EasyPermissions; public class AddDeviceActivity extends BaseActivity implements DeviceContract.DeviceView, EasyPermissions.PermissionCallbacks { + public static final String EXTRA_RESTART_BLE_SCAN = "restart_ble_scan"; + private static final long BLE_RESCAN_DELAY_MS = 1800L; + // 蓝牙相关 private BluetoothAdapter bluetoothAdapter; private static final int REQUEST_ENABLE_BT = 1001; @@ -75,6 +80,9 @@ public class AddDeviceActivity extends BaseActivity mDeviceList = new ArrayList<>(); private Set discoveredMacSet = new HashSet<>(); @@ -137,6 +145,7 @@ public class AddDeviceActivity extends BaseActivity { if (!isFinishing()) { startActivity(intent); diff --git a/app/src/main/java/com/ckkj/water/device/SelectWifiActivity.java b/app/src/main/java/com/ckkj/water/device/SelectWifiActivity.java index 6521754..508d5af 100644 --- a/app/src/main/java/com/ckkj/water/device/SelectWifiActivity.java +++ b/app/src/main/java/com/ckkj/water/device/SelectWifiActivity.java @@ -50,6 +50,10 @@ public class SelectWifiActivity extends BaseActivity { + if (!isWifiScanning || isFinishing()) { + return; + } + handler.removeCallbacks(wifiScanSendRetryTask); + isWifiScanning = false; + hideDialogLoading(); + viewBinding.tvNext.setVisibility(View.VISIBLE); + ToastUtil.showShort(mContext, getString(R.string.scan_failed)); + }; private final Runnable bleConnectTask = new Runnable() { @Override public void run() { @@ -96,6 +113,9 @@ public class SelectWifiActivity extends BaseActivity wifiList) { - runOnUiThread(() -> displayWifiListFromDevice(wifiList)); + runOnUiThread(() -> { + handler.removeCallbacks(wifiScanTimeoutTask); + handler.removeCallbacks(wifiScanSendRetryTask); + isWifiScanning = false; + displayWifiListFromDevice(wifiList); + }); } @Override public void onWiFiScanFailed(Exception e) { runOnUiThread(() -> { - ToastUtil.showShort(mContext, getString(R.string.scan_failed) + e.getMessage()); + if (isWifiScanning && isWifiScanSendFailure(e) + && wifiScanSendRetryCount < WIFI_SCAN_SEND_MAX_RETRIES) { + wifiScanSendRetryCount++; + handler.removeCallbacks(wifiScanSendRetryTask); + handler.postDelayed(wifiScanSendRetryTask, WIFI_SCAN_SEND_RETRY_DELAY); + return; + } + handler.removeCallbacks(wifiScanTimeoutTask); + handler.removeCallbacks(wifiScanSendRetryTask); + isWifiScanning = false; + String errorMessage = e == null ? "" : e.getMessage(); + ToastUtil.showShort(mContext, getString(R.string.scan_failed) + errorMessage); hideDialogLoading(); + viewBinding.tvNext.setVisibility(View.VISIBLE); }); } }); } + private boolean isWifiScanSendFailure(Exception e) { + return e != null && WIFI_SCAN_SEND_FAILED_MESSAGE.equals(e.getMessage()); + } + private void displayWifiListFromDevice(ArrayList wifiNetworks) { Set wifiSet = new HashSet<>(); List wifiNameList = new ArrayList<>(); diff --git a/app/src/main/java/com/ckkj/water/login/LoginActivity.java b/app/src/main/java/com/ckkj/water/login/LoginActivity.java index 0aaefaf..570510d 100644 --- a/app/src/main/java/com/ckkj/water/login/LoginActivity.java +++ b/app/src/main/java/com/ckkj/water/login/LoginActivity.java @@ -58,11 +58,13 @@ public class LoginActivity extends BaseActivity