diff --git a/src/ble/discovery.js b/src/ble/discovery.js index 56d595d..5985aeb 100644 --- a/src/ble/discovery.js +++ b/src/ble/discovery.js @@ -106,9 +106,9 @@ export function createBluetoothDiscovery(options = {}) { return left.hasTargetService ? -1 : 1 } - const leftSignal = typeof left.RSSI === 'number' ? left.RSSI : -999 - const rightSignal = typeof right.RSSI === 'number' ? right.RSSI : -999 - return rightSignal - leftSignal + // 同组内保持首次发现顺序(对象键插入序稳定)。 + // 不按 RSSI 排序:信号强度逐包抖动会让卡片反复换位跳动 + return 0 }) } @@ -248,13 +248,13 @@ export function createBluetoothDiscovery(options = {}) { function getDeviceStableSignature(device = {}) { return [ device.deviceId || '', - device.RSSI ?? '', device.name || '', device.localName || '', Array.isArray(device.advertisServiceUUIDs) ? device.advertisServiceUUIDs.map((item) => normalizeUuid(item)).sort().join('|') : '', device.advertisData ? JSON.stringify(Array.from(new Uint8Array(device.advertisData))) : '' + // RSSI 逐包抖动,不参与变更签名:避免同一设备反复触发列表刷新 ].join('#') }