全量人脸数据改为首次打开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.GlobalData
|
||||||
import com.sw.platecabinet.databinding.ActivityDeviceInitBinding
|
import com.sw.platecabinet.databinding.ActivityDeviceInitBinding
|
||||||
import com.sw.platecabinet.databinding.ItemTitleTimeBinding
|
import com.sw.platecabinet.databinding.ItemTitleTimeBinding
|
||||||
|
import com.sw.platecabinet.utils.SpTool
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
@@ -48,9 +49,11 @@ class DeviceInitActivity : BaseActivity<ActivityDeviceInitBinding>() {
|
|||||||
showWaitingDialog("加载中……")
|
showWaitingDialog("加载中……")
|
||||||
lifecycleScope.launch {
|
lifecycleScope.launch {
|
||||||
withContext(Dispatchers.Default) {
|
withContext(Dispatchers.Default) {
|
||||||
val count = FaceApi().queryFaceCount()
|
//val count = FaceApi().queryFaceCount()
|
||||||
if (count == 0) {
|
//if (count == 0) {
|
||||||
|
if (SpTool.getFirstGetFace()) {
|
||||||
userViewModel.getUserFaceCache { status, msg ->
|
userViewModel.getUserFaceCache { status, msg ->
|
||||||
|
SpTool.setFirstGetFace(false)
|
||||||
getDeviceConfig()
|
getDeviceConfig()
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -658,7 +658,8 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 调用示例:构造 1920×1080 的全黑帧(长度 1382400)
|
// 调用示例:构造 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)
|
// 传递“空帧” recognizeViewModel.onPreviewFrame(emptyFrame, true)
|
||||||
|
|
||||||
// /**
|
// /**
|
||||||
@@ -854,23 +855,15 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
|
|||||||
//1-会员、2-临时用户
|
//1-会员、2-临时用户
|
||||||
it.userType = if (faceModel.isMember) "1" else "2"
|
it.userType = if (faceModel.isMember) "1" else "2"
|
||||||
}
|
}
|
||||||
faceDao.insert(faceEntity)
|
val faceId = faceDao.insert(faceEntity)
|
||||||
|
faceEntity.faceId = faceId
|
||||||
loadLogInfo("collectFace,saveFaceInfo: ----------10,人脸数据保存完成-----------")
|
loadLogInfo("collectFace,saveFaceInfo: ----------10,人脸数据保存完成-----------")
|
||||||
recognizeViewModel.refreshFaceList()
|
recognizeViewModel.refreshFaceList()
|
||||||
loadLogInfo("collectFace,saveFaceInfo: ----------11,刷新人脸数据-----------")
|
loadLogInfo("collectFace,saveFaceInfo: ----------11,刷新人脸数据-----------")
|
||||||
val faceCount = faceDao.getFaceCount()
|
|
||||||
isRecognition = false
|
|
||||||
runOnUiThread {
|
runOnUiThread {
|
||||||
ToastUtils.showToast("采集完成")
|
//采集完成,不再识别,直接提示成功
|
||||||
recognizeViewModel.onPreviewFrame(emptyFrame, true)
|
isRecognition = false
|
||||||
if (faceCount == 1) {
|
recognizeSuccess("${System.currentTimeMillis()}")
|
||||||
//数据库的第一条数据,刚采集完成
|
|
||||||
binding.dualCameraFaceRectView.clearFaceInfo()
|
|
||||||
recognizeViewModel.clearLeftFace(facePreviewInfoList)
|
|
||||||
binding.root.postDelayed({
|
|
||||||
isRecognition = true
|
|
||||||
}, 1500)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
loadLogInfo("---------------------------------")
|
loadLogInfo("---------------------------------")
|
||||||
collectCount = 0
|
collectCount = 0
|
||||||
|
|||||||
@@ -10,6 +10,9 @@ import com.sw.platecabinet.model.response.EquipmentUserInfo
|
|||||||
object SpTool {
|
object SpTool {
|
||||||
const val LAST_FACE_TIMESTAMP: String = "faceTimestamp"
|
const val LAST_FACE_TIMESTAMP: String = "faceTimestamp"
|
||||||
const val PLATE_BOX_DATA: String = "plateBoxBind"
|
const val PLATE_BOX_DATA: String = "plateBoxBind"
|
||||||
|
|
||||||
|
const val IS_FIRST_GET_FACE = "isFirstGetFace"
|
||||||
|
|
||||||
private var spUtil: SPUtil? = null
|
private var spUtil: SPUtil? = null
|
||||||
|
|
||||||
init {
|
init {
|
||||||
@@ -39,4 +42,9 @@ object SpTool {
|
|||||||
return GsonUtils.fromJsonList(jsonData, EquipmentUserInfo::class.java)
|
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