Parcourir la source

指纹采集测试页补充其他按钮逻辑

Frankensteinly il y a 8 mois
Parent
commit
ceb596acee

+ 96 - 27
app/src/main/java/com/grkj/iscs/view/activity/test/fingerprint/FingerPrintActivity.kt

@@ -1,6 +1,8 @@
 package com.grkj.iscs.view.activity.test.fingerprint
 
 import android.Manifest
+import android.R
+import android.app.AlertDialog
 import android.graphics.Bitmap
 import android.hardware.usb.UsbDevice
 import android.hardware.usb.UsbManager
@@ -46,16 +48,16 @@ class FingerPrintActivity : BaseActivity<ActivityFingerPrintBinding>() {
             2048
         )
     }
-//    private val dbManager: DBManager = DBManager()
-    private val strUid: String? = null
-//    private var dbFileName: String? = null
+    private val dbManager: DBManager = DBManager()
+    private var strUid: String? = null
+    private var dbFileName: String? = null
 
 
     override val viewBinding: ActivityFingerPrintBinding
         get() = ActivityFingerPrintBinding.inflate(layoutInflater)
 
     override fun initView() {
-//        dbFileName = filesDir.absolutePath + "/zkfinger10.db"
+        dbFileName = filesDir.absolutePath + "/zkfinger10.db"
         checkStoragePermission()
         zkusbManager = ZKUSBManager(this.applicationContext, zkusbManagerListener)
         zkusbManager?.registerUSBPermissionReceiver()
@@ -73,24 +75,91 @@ class FingerPrintActivity : BaseActivity<ActivityFingerPrintBinding>() {
         }
 
         mBinding?.stop?.setOnClickListener {
-
+            if (!bStarted) {
+                mBinding?.txtResult?.setText("Device not connected!")
+                return@setOnClickListener
+            }
+            closeDevice()
+            mBinding?.txtResult?.setText("Device closed!")
         }
-        
-        mBinding?.register?.setOnClickListener {
 
+        mBinding?.register?.setOnClickListener {
+            if (bStarted) {
+                strUid = mBinding?.editID?.getText().toString()
+                if (null == strUid || strUid.isNullOrEmpty()) {
+                    mBinding?.txtResult?.setText("Please input your user id")
+                    bRegister = false
+                    return@setOnClickListener
+                }
+                if (dbManager.isUserExited(strUid)) {
+                    bRegister = false
+                    mBinding?.txtResult?.setText("The user[$strUid] had registered!")
+                    return@setOnClickListener
+                }
+                bRegister = true
+                enroll_index = 0
+                mBinding?.txtResult?.setText("Please press your finger 3 times.")
+            } else {
+                mBinding?.txtResult?.setText("Please start capture first")
+            }
         }
-        
-        mBinding?.identify?.setOnClickListener {
 
+        mBinding?.identify?.setOnClickListener {
+            if (bStarted) {
+                bRegister = false
+                enroll_index = 0
+            } else {
+                mBinding?.txtResult?.setText("Please start capture first")
+            }
         }
-        
-        
-        mBinding?.delete?.setOnClickListener {
 
+
+        mBinding?.delete?.setOnClickListener {
+            if (bStarted) {
+                strUid = mBinding?.editID?.getText().toString()
+                if (null == strUid || strUid!!.isEmpty()) {
+                    mBinding?.txtResult?.setText("Please input your user id")
+                    return@setOnClickListener
+                }
+                if (!dbManager.isUserExited(strUid)) {
+                    mBinding?.txtResult?.setText("The user no registered")
+                    return@setOnClickListener
+                }
+                AlertDialog.Builder(this)
+                    .setTitle("Do you want to delete the user ?")
+                    .setIcon(R.drawable.ic_dialog_info)
+                    .setPositiveButton("Yes") { dialog, which ->
+                        if (dbManager.deleteUser(strUid)) {
+                            ZKFingerService.del(strUid)
+                            setResult("Delete success !")
+                        } else {
+                            setResult("Open db fail !")
+                        }
+                    }
+                    .setNegativeButton(
+                        "No"
+                    ) { dialog, which -> }.show()
+            }
         }
         
         mBinding?.clear?.setOnClickListener {
-
+            if (bStarted) {
+                AlertDialog.Builder(this)
+                    .setTitle("Do you want to delete all the users ?")
+                    .setIcon(R.drawable.ic_dialog_info)
+                    .setPositiveButton("Yes") { dialog, which ->
+                        if (dbManager.clear()) {
+                            ZKFingerService.clear()
+                            setResult("Clear success!")
+                        } else {
+                            setResult("Open db fail!")
+                        }
+                    }
+                    .setNegativeButton(
+                        "no"
+                    ) { dialog, which -> }
+                    .show()
+            }
         }
 
         mBinding?.exit?.setOnClickListener {
@@ -194,19 +263,19 @@ class FingerPrintActivity : BaseActivity<ActivityFingerPrintBinding>() {
             //fingerprintSensor?.setCaptureMode(1);
             fingerprintSensor?.open(deviceIndex)
             //load all templates form db
-//            if (dbManager.opendb(dbFileName) && dbManager.getCount() > 0) {
-//                val vUserList: HashMap<String, String> = dbManager.queryUserList()
-//                var ret = 0
-//                if (vUserList.size > 0) {
-//                    for ((strID, strFeature) in vUserList) {
-//                        val blobFeature = Base64.decode(strFeature, Base64.NO_WRAP)
-//                        ret = ZKFingerService.save(blobFeature, strID)
-//                        if (0 != ret) {
-//                            LogUtil.e("add [$strID] template failed, ret=$ret")
-//                        }
-//                    }
-//                }
-//            }
+            if (dbManager.opendb(dbFileName) && dbManager.getCount() > 0) {
+                val vUserList: HashMap<String, String> = dbManager.queryUserList()
+                var ret = 0
+                if (vUserList.size > 0) {
+                    for ((strID, strFeature) in vUserList) {
+                        val blobFeature = Base64.decode(strFeature, Base64.NO_WRAP)
+                        ret = ZKFingerService.save(blobFeature, strID)
+                        if (0 != ret) {
+                            LogUtil.e("add [$strID] template failed, ret=$ret")
+                        }
+                    }
+                }
+            }
             run {
                 // device parameter
                 LogUtil.d("sdk version" + fingerprintSensor?.getSDK_Version())
@@ -320,7 +389,7 @@ class FingerPrintActivity : BaseActivity<ActivityFingerPrintBinding>() {
                 if (0 == retVal) {
                     val strFeature = Base64.encodeToString(regTemp, 0, ret, Base64.NO_WRAP)
                     println("haha : $strFeature")
-//                    dbManager.insertUser(strUid, strFeature)
+                    dbManager.insertUser(strUid, strFeature)
                     setResult("enroll succ")
                 } else {
                     setResult("enroll fail, add template fail, ret=$retVal")

+ 8 - 1
app/src/main/res/layout/activity_finger_print.xml

@@ -90,10 +90,17 @@
         android:layout_weight="1"
         android:orientation="vertical">
 
+        <EditText
+            android:id="@+id/editID"
+            android:layout_width="120dp"
+            android:layout_height="wrap_content"
+            android:textSize="20sp"
+            android:hint="请输入ID"/>
+
         <TextView
             android:id="@+id/txtResult"
             android:layout_width="match_parent"
-            android:layout_height="40dp"
+            android:layout_height="80dp"
             android:text=""
             android:textSize="20sp"/>