This commit is contained in:
mazengfei
2026-01-21 15:53:53 +08:00
parent 176c555860
commit aad4f299aa
3 changed files with 62 additions and 45 deletions
@@ -245,9 +245,15 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
})
recognizeViewModel.recognizeUserId.observe(this, Observer { result: CompareResult? ->
Timber.i("recognizeUserId observe userId = ${result?.faceEntity?.userName}")
loadLogInfo("collectFace,recognizeUserId observe userId = ${result?.faceEntity?.userName}")
if (result?.faceEntity == null) {
loadLogInfo("collectFace,recognizeUserId 未识别到人脸信息,开始采集")
isCollectFace = true
collectFace()
return@Observer
}
currentUserId = result?.faceEntity?.userName
plateEnable = true
// plateEnable = true
openPlate(currentUserId)
})
@@ -266,7 +272,7 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
}
private var currentPlateInfo: EquipmentUserInfo? = null
private var plateEnable = true
private var plateEnable = false
/**
* 打开餐盘柜
@@ -290,15 +296,19 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
item.faceId = userId
item.updateTime = DateTimeUtils.getDateTimeString()
item.plateNumber = null
//打开柜子
PlateUtils.open(this, item.equipmentBoxCode, false)
plateEnable = false
debouncer.debounce {
//打开柜子
PlateUtils.open(this, item.equipmentBoxCode, false)
}
currentPlateInfo = item
MyApp.plateList = items
SpTool.savePlateData(items)
}
}
private val debouncer by lazy { Debouncer(3000) }
private fun initArcView() {
//在布局结束后才做初始化操作
binding.dualCameraTexturePreviewRgb.getViewTreeObserver().addOnGlobalLayoutListener(this)
@@ -317,7 +327,7 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
EventBus.getDefault().unregister(this)
// getFaceScheduler?.shutdown()
checkFaceScheduler?.shutdown()
// checkFaceScheduler?.shutdown()
super.onDestroy()
}
@@ -518,6 +528,8 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
if (rgbCameraHelper != null && rgbCameraHelper!!.isStopped) {
loadLogInfo("collectFace,resumeCamera: ")
rgbCameraHelper!!.start()
} else {
recognizeViewModel.onPreviewFrame(ByteArray(1382400), true)
}
}
@@ -535,7 +547,6 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
}, 1000)
return
}
faceDataList.clear()
isCollectFace = false
plateEnable = true
collectCount = 0
@@ -546,8 +557,8 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
it.cancel()
it.start()
}
initFaceScheduler()
checkFaceState()
// initFaceScheduler()
// checkFaceState()
} catch (e: Exception) {
e.printStackTrace()
}
@@ -612,12 +623,12 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
}
// private var getFaceScheduler: ScheduledExecutorService? = null
private var checkFaceScheduler: ScheduledExecutorService? = null
private fun initFaceScheduler() {
// getFaceScheduler = Executors.newScheduledThreadPool(1)
checkFaceScheduler = Executors.newScheduledThreadPool(1)
}
// private var checkFaceScheduler: ScheduledExecutorService? = null
//
// private fun initFaceScheduler() {
//// getFaceScheduler = Executors.newScheduledThreadPool(1)
// checkFaceScheduler = Executors.newScheduledThreadPool(1)
// }
private fun getFaceDataBlock(block: (String) -> Unit) {
if (userFaceInfo == null || userFaceInfo?.faceFeature?.featureData == null) {
@@ -631,8 +642,6 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
block(faceData)
}
private var faceDataList: MutableList<String> = mutableListOf()
private fun loadLogInfo(msg: String) {
Timber.tag(TAG).d( msg)
}
@@ -647,9 +656,9 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
sendFaceData(faceData)
loadLogInfo("collectFace,saveFaceInfo: ----------12,人脸数据发送完成时间:${DateTimeUtils.getDateTimeString()}-----------")
runOnUiThread {
openPlate(tempUserId)
}
// runOnUiThread {
// openPlate(tempUserId)
// }
loadLogInfo("collectFace,saveFaceInfo: ----------8,保存人脸取特征数据-----------")
val faceDao = FaceDatabase.getInstance(this).faceDao()
@@ -664,6 +673,7 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
loadLogInfo("collectFace,saveFaceInfo: ----------10,人脸数据保存完成-----------")
recognizeViewModel.refreshFaceList()
loadLogInfo("collectFace,saveFaceInfo: ----------11,刷新人脸数据-----------")
runOnUiThread { recognizeViewModel.onPreviewFrame(ByteArray(1382400), true) }
loadLogInfo("---------------------------------")
collectCount = 0
} catch (e: Exception) {
@@ -749,33 +759,33 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
}.start()
}
private val WAITING_TIME = 3 * 1000L
private var checkStartTime = 0L
// private val WAITING_TIME = 3 * 1000L
// private var checkStartTime = 0L
private fun checkFaceState() {
checkStartTime = System.currentTimeMillis()
checkFaceScheduler?.scheduleWithFixedDelay(
{
checkFaceBlock()
}, 5L, 5L, TimeUnit.MILLISECONDS
)
// checkStartTime = System.currentTimeMillis()
//
// checkFaceScheduler?.scheduleWithFixedDelay(
// {
// checkFaceBlock()
// }, 5L, 5L, TimeUnit.MILLISECONDS
// )
}
private var isCollectFace = false
private fun checkFaceBlock() {
loadLogInfo("collectFace,currentUserId=${currentUserId}")
if (currentUserId.isNullOrBlank().not()) {
isCollectFace = false
checkFaceScheduler?.shutdown()
return
}
if (System.currentTimeMillis() - checkStartTime >= WAITING_TIME) {
//超过1秒采集人脸并识别
checkFaceScheduler?.shutdown()
isCollectFace = true
collectFace()
}
}
// private fun checkFaceBlock() {
// loadLogInfo("collectFace,currentUserId=${currentUserId}")
// if (currentUserId.isNullOrBlank().not()) {
// isCollectFace = false
//
// checkFaceScheduler?.shutdown()
// return
// }
//// if (System.currentTimeMillis() - checkStartTime >= WAITING_TIME) {
//// //超过1秒采集人脸并识别
//// checkFaceScheduler?.shutdown()
//// isCollectFace = true
//// collectFace()
//// }
// }
}