From 4ceacd9e21e09989287e8dc4e526d182091af282 Mon Sep 17 00:00:00 2001 From: zuoxiao <lf_zuo@163.com> Date: 星期四, 26 六月 2025 13:39:52 +0800 Subject: [PATCH] feat(nfc): 优化 NFC卡片处理流程 --- generallibrary/src/main/java/com/dayu/general/activity/ManagerReadActivity.kt | 46 +++++++++++++++++++++++++++++++++++++--------- 1 files changed, 37 insertions(+), 9 deletions(-) diff --git a/generallibrary/src/main/java/com/dayu/general/activity/ManagerReadActivity.kt b/generallibrary/src/main/java/com/dayu/general/activity/ManagerReadActivity.kt index a58bf9a..4a7def0 100644 --- a/generallibrary/src/main/java/com/dayu/general/activity/ManagerReadActivity.kt +++ b/generallibrary/src/main/java/com/dayu/general/activity/ManagerReadActivity.kt @@ -5,6 +5,7 @@ import android.text.Editable import android.text.TextWatcher import android.view.View +import android.widget.Toast import androidx.databinding.DataBindingUtil import com.dayu.baselibrary.net.subscribers.SubscriberListener import com.dayu.baselibrary.utils.BaseCommon @@ -18,6 +19,7 @@ import com.dayu.general.tool.BaseCommon.Companion.protocol import com.dayu.general.tool.CardCommon import com.dayu.general.tool.NfcReadHelper +import com.dayu.general.tool.NfcWreatHelper class ManagerReadActivity : BaseNfcActivity() { @@ -196,16 +198,42 @@ fun getRemark(): String = viewModel.remark.get() ?: "" override fun onNfcBack(intent: Intent) { + val cardNumber = NfcReadHelper.getInstance(intent, this).getCardNumberNoClose() + if (cardNumber.isNotEmpty()) { + val keyList = ArrayList(NfcReadHelper.getInstance(intent, this).getKeyList()) + val nfcHelper = NfcWreatHelper.getInstance(intent, this) + nfcHelper.setLoadingView(binding.loadingContainer, binding.nfcProgressWheel) + // 寮傛淇敼瀵嗙爜 + nfcHelper.changePSAsync( + keyList, + true, // 淇敼涓簍rue锛岀‘淇濆缓绔婲FC杩炴帴 + true + ) { success: Boolean, msg: String? -> + if (success) { + // 闅愯棌NFC璇诲崱鐣岄潰 + if (cardNumber.isNotEmpty() && !cardNumber.contains(BaseCommon.CARD_TYPE_ERROR2)) { + binding.btnNext.visibility = View.VISIBLE + binding.dataLayout.visibility = View.VISIBLE + binding.scrollReadCard.visibility = View.GONE + setCardNumber(cardNumber) + } else if (cardNumber.contains(BaseCommon.CARD_TYPE_ERROR2)) { + ToastUtil.show("褰撳墠鍗″瘑鐮侀敊璇紝涓嶆槸鏈叕鍙稿崱") + } + } else { + // 瀵嗙爜淇敼澶辫触锛屽鐞嗛敊璇儏鍐� + Toast.makeText( + this@ManagerReadActivity, + "鍗$墖鍒濆鍖栧け璐ワ細$msg", + Toast.LENGTH_LONG + ).show() + } + } + } + // 鍒涘缓瀵嗛挜鍒楄〃鐨勫壇鏈紝閬垮厤ConcurrentModificationException + // 澶勭悊NFC璇诲彇缁撴灉 NfcReadHelper.getInstance(intent, this).getCardNumber().let { cardNumber -> - if (cardNumber.isNotEmpty() && !cardNumber.contains(BaseCommon.CARD_TYPE_ERROR2)) { - binding.btnNext.visibility = View.VISIBLE - binding.dataLayout.visibility = View.VISIBLE - binding.scrollReadCard.visibility = View.GONE - setCardNumber(cardNumber) - } else if (cardNumber.contains(BaseCommon.CARD_TYPE_ERROR2)) { - ToastUtil.show("褰撳墠鍗″瘑鐮侀敊璇紝涓嶆槸鏈叕鍙稿崱") - } + } } @@ -281,7 +309,7 @@ map["projectNumber"] = projectNumber } map["protocol"] = protocol - map["securityCode"]="A0B1C289" + map["securityCode"] = "A0B1C289" // 浣跨敤姝g‘鐨勭被鍨嬪弬鏁� ApiManager.getInstance().requestPostLoading( -- Gitblit v1.8.0