fix: stabilize rk3588 wifi provisioning

This commit is contained in:
2026-05-24 20:36:37 +08:00
parent 306243eb6a
commit a85732aa80
5 changed files with 267 additions and 52 deletions

View File

@@ -2,7 +2,7 @@
const EventEmitter = require('events');
const log = require('./logger');
const { hasInternet, hasSavedWifiConnection, connectSavedWifiConnections, isWifiStaConnected, scanWifi, startAP, stopAP, connectWifi, getWifiIface, AP_IP } = require('./network');
const { hasInternet, hasWiredInternetProbe, hasSavedWifiConnection, connectSavedWifiConnections, isWifiStaConnected, scanWifi, startAP, stopAP, connectWifi, getWifiIface, AP_IP } = require('./network');
const { DnsHijack } = require('./dns-hijack');
const { CaptiveServer } = require('./captive-server');
const led = require('./led');
@@ -258,7 +258,9 @@ class ProvisionManager extends EventEmitter {
}
if (this._state === 'ap') {
if (hasInternet()) {
// AP 模式下 hasInternet() 可能被热点本地网络 / NetworkManager limited 状态误判。
// 只有明确探测到有线口可访问公网时,才关闭配网 AP。
if (hasWiredInternetProbe()) {
log.info('provision', '检测到有线网络可用,关闭 AP');
this._stopAPServices();
this._state = 'wired';