2017-01-17 17 views
1

Что я делаю:Android отпечатков пальцев cancellationSignal FINGERPRINT_ACQUIRED_TOO_FAST

Я использую следующий учебник, чтобы понять базовые знания о том, как использовать аутентификацию по отпечаткам пальцев в Android: http://joerichard.net/android/android-fingerprint-example/

Я в основном следовать за исключением того, что я добавлена ​​кнопка, и я хочу аутентифицировать пользователя при нажатии кнопки.

Так что я изменяет следующие

 protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Button btn = (Button) findViewById(R.id.button); 
     btn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       authentication(); 
      } 
     }); 

     ... 

     protected void authentication(/* Bundle savedInstanceState */) { 
     //super.onCreate(savedInstanceState); 
     //setContentView(R.layout.activity_main); 

     ... 

Моя проблема:

При нажатии на кнопку следующее уведомление называется (в "FingerprintHandler.java"):

   Toast.makeText(appContext, 
       "Authentication error\n" + errString , 
       Toast.LENGTH_LONG).show(); 

errString - Fingerprint operation canceled. , а идентификатор сообщения об ошибке - 5.

При поиске Я нашел here, что соответствует FINGERPRINT_ACQUIRED_TOO_FAST, однако я не понимаю, почему это происходит.

Что я пробовал:

  • Я попытался нажать на кнопку, имея свой палец на сканер, но уведомление является немедленным, которые заставляют меня поверить, что это не даже слушать/сканирование отпечаток пальца.

  • Я также попытался заставить его работать без кнопки, но в этом случае ничего не происходит.

Если вы видите, что может пойти не так, или у вас есть направления, в которых я мог бы расследовать, дайте мне знать.

спасибо.

+0

Попробуйте этот образец приложения для печати пальцем https://github.com/rmkrishna/FingerPrint –

ответ

0

Мой датчик работал не очень хорошо. Требуется много попыток чтения (и некоторое время он вообще не работает). Таким образом, я бы попробовал, нажав на кнопку, вызывающую ошибку.

Функция не будет считывать данные из сканера при повторном нажатии кнопки и выдаст ошибку FINGERPRINT_ACQUIRED_TOO_FAST.

Тот факт, что эта конкретная ошибка (TOO_FAST) является триггером, не помогла мне в моей ситуации, потому что, как я объяснил, это сообщение об ошибке запускается при нажатии кнопки.

Если кто-либо сталкивается с одной и той же проблемой, вы получаете больше времени/шансов на то, чтобы ваш датчик узнал, что читается палец.