diff --git a/app/src/main/java/com/xiaoqu/watch/device/nfc/FiseNfcController.kt b/app/src/main/java/com/xiaoqu/watch/device/nfc/FiseNfcController.kt index 08edf73..05ae884 100644 --- a/app/src/main/java/com/xiaoqu/watch/device/nfc/FiseNfcController.kt +++ b/app/src/main/java/com/xiaoqu/watch/device/nfc/FiseNfcController.kt @@ -82,11 +82,14 @@ class FiseNfcController @Inject constructor() : NfcController { // 非空且非全零才算有效卡号(全零=无卡贴近) if (nfcId.isNotEmpty() && nfcId.any { it != '0' }) { - Timber.d("NFC控制: 读到卡号 $nfcId") + Timber.d("NFC控制: 读到卡号 $nfcId,停止轮询") + // 读到有效卡号后立即停止轮询,避免重复回调 + stopScan() // 切回主线程回调 withContext(Dispatchers.Main) { callback(nfcId) } + return@launch } } } catch (e: Exception) {