Parcourir la source

refactor(更新)
- 改为V5版本

周文健 il y a 4 mois
Parent
commit
09551aee31

+ 4 - 2
app/src/main/java/com/grkj/iscs/features/main/fragment/user_info/UserInfoFragment.kt

@@ -107,8 +107,10 @@ class UserInfoFragment : BaseFragment<FragmentUserInfoBinding>() {
     override fun initData() {
         super.initData()
         MainDomainData.userInfo?.avatar?.let {
-            val avatar = ImageConvertUtils.base64ToBitmap(it.file().readText())
-            binding.avatar.load(avatar)
+            if (it.file().exists()) {
+                val avatar = ImageConvertUtils.base64ToBitmap(it.file().readText())
+                binding.avatar.load(avatar)
+            }
         }
         binding.username.text = MainDomainData.userInfo?.userName
         binding.nicknameEt.setText(MainDomainData.userInfo?.nickName)

BIN
app/src/main/jniLibs/arm64-v8a/libarcsoft_face.so


BIN
app/src/main/jniLibs/arm64-v8a/libarcsoft_face_engine.so


BIN
app/src/main/jniLibs/armeabi-v7a/libarcsoft_face.so


BIN
app/src/main/jniLibs/armeabi-v7a/libarcsoft_face_engine.so


BIN
shared/libs/arcsoft_face.jar


+ 1 - 0
shared/src/main/java/com/grkj/shared/config/Constants.kt

@@ -44,6 +44,7 @@ object Constants {
     const val DEBUG: Boolean = true
 
     /*************************  虹软ArcSoft  *************************/
+    const val ACTIVE_KEY = "8551-11XJ-913K-J1CN"
     const val APP_ID = "FTN3G4pk8n2RKwjD955sRapRjbYQFefwhHd4sBZMYEz6"
     const val SDK_KEY = "BjJomNU2bQc2SYhT7NNqwvFd3WD4wTqecifNcDRuKD5G"
 

+ 15 - 11
shared/src/main/java/com/grkj/shared/utils/ArcSoftUtil.kt

@@ -22,6 +22,7 @@ import com.arcsoft.face.GenderInfo
 import com.arcsoft.face.LivenessInfo
 import com.arcsoft.face.enums.DetectFaceOrientPriority
 import com.arcsoft.face.enums.DetectMode
+import com.arcsoft.face.enums.ExtractType
 import com.grkj.shared.config.Constants
 import com.grkj.shared.utils.face.arcsoft.CameraHelper
 import com.grkj.shared.utils.face.arcsoft.CameraListener
@@ -42,7 +43,7 @@ object ArcSoftUtil {
     private val cameraHeight: Int = 480
     private var afCode = -1
     private val processMask: Int =
-        FaceEngine.ASF_AGE or FaceEngine.ASF_FACE3DANGLE or FaceEngine.ASF_GENDER or FaceEngine.ASF_LIVENESS
+        FaceEngine.ASF_AGE or FaceEngine.ASF_MASK_DETECT or FaceEngine.ASF_GENDER or FaceEngine.ASF_LIVENESS
 
     private const val ACTION_REQUEST_PERMISSIONS: Int = 0x001
     var isActivated = false
@@ -56,7 +57,12 @@ object ArcSoftUtil {
     )
 
     fun checkActiveStatus(context: Context) {
-        val activeCode = FaceEngine.activeOnline(context, Constants.APP_ID, Constants.SDK_KEY)
+        val activeCode = FaceEngine.activeOnline(
+            context,
+            Constants.ACTIVE_KEY,
+            Constants.APP_ID,
+            Constants.SDK_KEY
+        )
         when (activeCode) {
             ErrorInfo.MOK -> {
                 isActivated = true
@@ -81,17 +87,16 @@ object ArcSoftUtil {
     }
 
     fun initEngine(context: Context) {
-        if (isInit){
+        if (isInit) {
             return
         }
         faceEngine = FaceEngine()
         afCode = faceEngine!!.init(
             context,
-            DetectMode.ASF_DETECT_MODE_VIDEO,
-            DetectFaceOrientPriority.valueOf("ASF_OP_0_ONLY"),
-            16,
+            DetectMode.ASF_DETECT_MODE_IMAGE,
+            DetectFaceOrientPriority.ASF_OP_0_ONLY,
             1,
-            FaceEngine.ASF_FACE_DETECT or FaceEngine.ASF_AGE or FaceEngine.ASF_FACE3DANGLE or FaceEngine.ASF_GENDER or FaceEngine.ASF_LIVENESS or FaceEngine.ASF_FACE_RECOGNITION
+            FaceEngine.ASF_FACE_DETECT or FaceEngine.ASF_AGE or FaceEngine.ASF_MASK_DETECT or FaceEngine.ASF_GENDER or FaceEngine.ASF_LIVENESS or FaceEngine.ASF_FACE_RECOGNITION
         )
         logger.info("initEngine:  init: $afCode")
         isInit = afCode == ErrorInfo.MOK
@@ -159,11 +164,10 @@ object ArcSoftUtil {
                 val faceLivenessInfoList: List<LivenessInfo> = ArrayList()
                 val ageCode = faceEngine!!.getAge(ageInfoList)
                 val genderCode = faceEngine!!.getGender(genderInfoList)
-                val face3DAngleCode = faceEngine!!.getFace3DAngle(face3DAngleList)
                 val livenessCode = faceEngine!!.getLiveness(faceLivenessInfoList)
 
                 // 有其中一个的错误码不为ErrorInfo.MOK,return
-                if ((ageCode or genderCode or face3DAngleCode or livenessCode) != ErrorInfo.MOK) {
+                if ((ageCode or genderCode or livenessCode) != ErrorInfo.MOK) {
                     logger.debug("人脸检测结果:年龄、性别、角度、获取验证失败")
                     return
                 }
@@ -273,11 +277,11 @@ object ArcSoftUtil {
         val ftB = FaceFeature()
         faceEngine?.extractFaceFeature(
             imgA, bmpA.width, bmpA.height, FaceEngine.CP_PAF_BGR24,
-            facesA[0], ftA
+            facesA[0], ExtractType.RECOGNIZE, 0, ftA
         )
         faceEngine?.extractFaceFeature(
             imgB, bmpB.width, bmpB.height, FaceEngine.CP_PAF_BGR24,
-            facesB[0], ftB
+            facesB[0], ExtractType.RECOGNIZE, 0, ftB
         )
 
         // 4. 特征比对