From b23045194a7a202481bc67f3898ee3d09cf90224 Mon Sep 17 00:00:00 2001 From: mazengfei <331023091@qq.com> Date: Mon, 19 Jan 2026 13:08:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activity/LoginByFaceActivity.kt | 44 ++++++++++++------- .../main/res/layout/activity_login_face.xml | 6 +++ 2 files changed, 33 insertions(+), 17 deletions(-) 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 8ba74ee..faf4446 100644 --- a/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt +++ b/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt @@ -255,6 +255,7 @@ class LoginByFaceActivity : BaseActivity(), if (item == null) { //暂无餐盘 ToastUtils.showToast("暂无餐盘,请联系管理人员!") + goInitActivity() return@getPlateData } Log.d(TAG, "openPlate: item3:${item}") @@ -519,7 +520,7 @@ class LoginByFaceActivity : BaseActivity(), }, 1000) return } - + collectCount = 0 tempUserId = "${System.currentTimeMillis()}" resumeCamera() viewModel.resetUserInfo() @@ -568,8 +569,7 @@ class LoginByFaceActivity : BaseActivity(), } private fun collectFace() { - //toast("currentUserId=$currentUserId") - Log.d(TAG, "collectFace: -----------11111111----------") + Log.d(TAG, "collectFace: -----------开始采集人脸111111----------") if (isFirstOpen) return Log.d(TAG, "collectFace: ----------22222222-----------") if (facePreviewInfoList.isNullOrEmpty()) { @@ -587,8 +587,7 @@ class LoginByFaceActivity : BaseActivity(), currentUserId = null userFaceInfo = null recognizeViewModel.updateRegisterStatus(REGISTER_STATUS_READY) -// showWaitingDialog("加载中……") - + Log.d(TAG, "collectFace: 人脸采集中……") // binding.tvFaceTip.gone() // binding.btnCollectFace.invisible() // binding.layoutState.visible() @@ -596,19 +595,21 @@ class LoginByFaceActivity : BaseActivity(), // binding.tvCollectState.text = "采集中......" getFaceData { faceData -> Log.d("LoginByFaceActivity", "collectFace,faceData: $faceData") - runOnUiThread { -// hideWaitingDialog() - //toast("人脸信息已采集") -// binding.pbCollectLoading.gone() - //binding.tvCollectState.text = "采集完成" - userFaceInfo = null -// countDown() - } -// sendFaceData(faceData) + userFaceInfo = null saveFaceInfo(faceData) } } + private fun sendFaceData(faceData: String) { + Log.d(TAG, "collectFace,sendFaceData: ---------------------------") + // 给某个客户端发送 + val jsonObject = JSONObject().also { + it.put("type", "faceFeature") + it.put("content", faceData) + } + tcpClient?.send(jsonObject) + } + private fun getFaceData(block: (String) -> Unit) { runBlocking { job = executor.startIntervalTask(5) { @@ -673,15 +674,24 @@ class LoginByFaceActivity : BaseActivity(), } faceDao.insert(faceEntity) recognizeViewModel.refreshFaceList() -// runOnUiThread { -// ToastUtils.showToast("你的人脸信息已采集") -// } + sendFaceData(faceData) + Log.d(TAG, "collectFace,saveFaceInfo: 人脸采集完成") + collectCount = 0 } catch (e: Exception) { e.printStackTrace() + Log.d(TAG, "collectFace,saveFaceInfo: 人脸采集异常:${e.message}") + collectCount++ + if (collectCount <= 5) { + collectFace() + } else { + ToastUtils.showToast("人脸采集异常:${e.message}") + } } }.start() } + private var collectCount = 0; + private var tcpClient: TcpClient? = null private fun addSocketListener() { diff --git a/app/src/main/res/layout/activity_login_face.xml b/app/src/main/res/layout/activity_login_face.xml index e5aa4f1..a3e341b 100644 --- a/app/src/main/res/layout/activity_login_face.xml +++ b/app/src/main/res/layout/activity_login_face.xml @@ -140,6 +140,12 @@ + + \ No newline at end of file