Я новичок в Android Finger Print Listener и изучаю его самостоятельно.У меня проблема с отменой прослушивателя отпечатков пальцев!
Я создал вспомогательный класс как:
@RequiresApi(Build.VERSION_CODES.M)
class FingerprintHandler : FingerprintManager.AuthenticationCallback {
private var context: Context? = null
constructor(context: Context) {
this.context = context
}
fun startAuth(manager: FingerprintManager, context: Context, cancellationSignal: CancellationSignal) {
manager.authenticate(null, cancellationSignal, 0, this, null)
}
override fun onAuthenticationError(errorCode: Int, errString: CharSequence?) {
super.onAuthenticationError(errorCode, errString)
Toast.makeText(context!!, "Finger Print Authentication Error", Toast.LENGTH_SHORT).show()
}
override fun onAuthenticationSucceeded(result: FingerprintManager.AuthenticationResult?) {
super.onAuthenticationSucceeded(result)
Toast.makeText(context, context!!.resources.getString(R.string.success), Toast.LENGTH_SHORT).show()
}
override fun onAuthenticationHelp(helpCode: Int, helpString: CharSequence?) {
super.onAuthenticationHelp(helpCode, helpString)
}
override fun onAuthenticationFailed() {
super.onAuthenticationFailed()
Toast.makeText(context!!, "Finger Print Authentication Failed", Toast.LENGTH_SHORT).show()
}
}
и в своей деятельности у меня есть:
private var cancellationSignal: CancellationSignal? = null
override fun onPause() {
stopAuthentication()
fingerprintManager = null
super.onPause()
}
private fun stopAuthentication() {
if (cancellationSignal != null) {
cancellationSignal!!.cancel()
cancellationSignal!!.setOnCancelListener {
object : CancellationSignal.OnCancelListener {
override fun onCancel() {
Toast.makeText(applicationContext, "Signal Cancelled", Toast.LENGTH_SHORT).show()
}
}
}
}
}
главная проблема в том, что всякий раз, когда я хочу остановить слушателя, я вызываю метод stopAuthentication, но не могу остановить его, так как не отображается всплывающее окно!
, и я все еще могу использовать сканер отпечатков пальцев
Что я делаю не так, может кто-нибудь, пожалуйста, помогите мне!
Моим тестовым устройством является Huawei Mate 10 Oreo 8.0