From 3b88b011a3831a81c53160c46613560537759782 Mon Sep 17 00:00:00 2001 From: lvmeng <848755140@qq.com> Date: Thu, 5 Mar 2026 09:43:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=A8=E9=87=8F=E4=BA=BA=E8=84=B8=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=94=B9=E4=B8=BA=E9=A6=96=E6=AC=A1=E6=89=93=E5=BC=80?= =?UTF-8?q?app=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activity/DeviceInitActivity.kt | 7 +++++-- .../activity/LoginByFaceActivity.kt | 21 +++++++------------ .../java/com/sw/platecabinet/utils/SpTool.kt | 8 +++++++ 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/com/sw/platecabinet/activity/DeviceInitActivity.kt b/app/src/main/java/com/sw/platecabinet/activity/DeviceInitActivity.kt index a372e02..c4e727d 100644 --- a/app/src/main/java/com/sw/platecabinet/activity/DeviceInitActivity.kt +++ b/app/src/main/java/com/sw/platecabinet/activity/DeviceInitActivity.kt @@ -7,6 +7,7 @@ import com.sw.plate.utils.arcface.FaceApi import com.sw.platecabinet.GlobalData import com.sw.platecabinet.databinding.ActivityDeviceInitBinding import com.sw.platecabinet.databinding.ItemTitleTimeBinding +import com.sw.platecabinet.utils.SpTool import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext @@ -48,9 +49,11 @@ class DeviceInitActivity : BaseActivity() { showWaitingDialog("加载中……") lifecycleScope.launch { withContext(Dispatchers.Default) { - val count = FaceApi().queryFaceCount() - if (count == 0) { + //val count = FaceApi().queryFaceCount() + //if (count == 0) { + if (SpTool.getFirstGetFace()) { userViewModel.getUserFaceCache { status, msg -> + SpTool.setFirstGetFace(false) getDeviceConfig() } } else { diff --git a/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt b/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt index a60e3a4..927d33a 100644 --- a/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt +++ b/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt @@ -658,7 +658,8 @@ class LoginByFaceActivity : BaseActivity(), } // 调用示例:构造 1920×1080 的全黑帧(长度 1382400) - private val emptyFrame = createBlackNV21Frame(1920, 1080) +// private val emptyFrame = createBlackNV21Frame(1920, 1080) + private val emptyFrame = createBlackNV21Frame(1280, 720) // 传递“空帧” recognizeViewModel.onPreviewFrame(emptyFrame, true) // /** @@ -854,23 +855,15 @@ class LoginByFaceActivity : BaseActivity(), //1-会员、2-临时用户 it.userType = if (faceModel.isMember) "1" else "2" } - faceDao.insert(faceEntity) + val faceId = faceDao.insert(faceEntity) + faceEntity.faceId = faceId loadLogInfo("collectFace,saveFaceInfo: ----------10,人脸数据保存完成-----------") recognizeViewModel.refreshFaceList() loadLogInfo("collectFace,saveFaceInfo: ----------11,刷新人脸数据-----------") - val faceCount = faceDao.getFaceCount() - isRecognition = false runOnUiThread { - ToastUtils.showToast("采集完成") - recognizeViewModel.onPreviewFrame(emptyFrame, true) - if (faceCount == 1) { - //数据库的第一条数据,刚采集完成 - binding.dualCameraFaceRectView.clearFaceInfo() - recognizeViewModel.clearLeftFace(facePreviewInfoList) - binding.root.postDelayed({ - isRecognition = true - }, 1500) - } + //采集完成,不再识别,直接提示成功 + isRecognition = false + recognizeSuccess("${System.currentTimeMillis()}") } loadLogInfo("---------------------------------") collectCount = 0 diff --git a/app/src/main/java/com/sw/platecabinet/utils/SpTool.kt b/app/src/main/java/com/sw/platecabinet/utils/SpTool.kt index ccee471..344df64 100644 --- a/app/src/main/java/com/sw/platecabinet/utils/SpTool.kt +++ b/app/src/main/java/com/sw/platecabinet/utils/SpTool.kt @@ -10,6 +10,9 @@ import com.sw.platecabinet.model.response.EquipmentUserInfo object SpTool { const val LAST_FACE_TIMESTAMP: String = "faceTimestamp" const val PLATE_BOX_DATA: String = "plateBoxBind" + + const val IS_FIRST_GET_FACE = "isFirstGetFace" + private var spUtil: SPUtil? = null init { @@ -39,4 +42,9 @@ object SpTool { return GsonUtils.fromJsonList(jsonData, EquipmentUserInfo::class.java) } + fun getFirstGetFace() = spUtil?.get(IS_FIRST_GET_FACE, false)?:false + fun setFirstGetFace(state: Boolean) { + spUtil?.boolean(IS_FIRST_GET_FACE, state) + } + }