全量人脸数据改为首次打开app获取
This commit is contained in:
@@ -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<ActivityDeviceInitBinding>() {
|
||||
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 {
|
||||
|
||||
@@ -658,7 +658,8 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
|
||||
}
|
||||
|
||||
// 调用示例:构造 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<ActivityLoginFaceBinding>(),
|
||||
//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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user