Использование намерения при распознавании отпечатка пальца - PullRequest
0 голосов
/ 04 сентября 2018

В настоящее время я занимаюсь разработкой приложения с функцией MainActivity, которое состоит из системы безопасности Fingerprint. Идея приложения заключается в том, что при распознавании отпечатка пальца приложение должно открывать другое действие.

Все мои средства проверки отпечатков пальцев сконцентрированы в Java.class под названием FingerprintHandler, который вы можете увидеть ниже:

@TargetApi(Build.VERSION_CODES.M)

открытый класс FingerprintHandler расширяет FingerprintManager.AuthenticationCallback {

// Usamos CancellationSignal para que una vez fuera de la App otras apps puedan usar el sensor de huellas sin problemas

private CancellationSignal cancellationSignal;
private Context context;

public FingerprintHandler(Context mContext) {
    context = mContext;
}

// Implementamos startAuth ya que es el encargado de realizar la autenticación de la huella digital
public void startAuth(FingerprintManager manager, FingerprintManager.CryptoObject cryptoObject) {

    cancellationSignal = new CancellationSignal();
    if (ActivityCompat.checkSelfPermission(context, permission.USE_FINGERPRINT) != PackageManager.PERMISSION_GRANTED) {
        return;
    }
    manager.authenticate(cryptoObject, cancellationSignal, 0, this, null);
}

@Override
// onAuthtenticationError es llamado cuando ocurre un error fatal, y nos proporciona información sobre este
public void onAuthenticationError(int errMsgId, CharSequence errString) {
    Toast.makeText(context, "Error de autenticación\n" + errString, Toast.LENGTH_SHORT).show();
}

@Override
// onAuthenticationHelp es llamado cuando ocurre un error no fatal, y nos proporciona información sobre este
public void onAuthenticationHelp(int helpCode, CharSequence helpString) {
    Toast.makeText(context, "Ayuda de autenticación:\n " + helpString, Toast.LENGTH_SHORT).show();
}

@Override
// onAuthenticationSucceeded es llamado cuando la huella utilizada coincide con alguna de la sregistradas en el dispositivo
public void onAuthenticationSucceeded(AuthenticationResult result) {
    Toast.makeText(context, "Autenticación realizada con éxito", Toast.LENGTH_SHORT).show();

}

@Override
// onAuthenticationFailed es llamado cuando la huela dactilar utilizada no coincide con ninguna de las registradas en el dispositivo
public void onAuthenticationFailed() {
    Toast.makeText(context, "La huella no coincide con ninguna de las registradas", Toast.LENGTH_SHORT).show();
}

}

Я пытался установить Intent для метода onAuthenticationSucceeded, но он не работает, это в основном намерение, которое я пытался установить внутри onAuthenticationSucceeded:

Intent intent = new Intent(MainActivity.class, CommandSenderActivity.class);
    startActivity(intent);

Дело в том, что моя Android Studio говорит, что он не может разрешить конструктор Intent, а также «startActivity» не распознается, оно выглядит красным.

Так что это, в основном, мое сомнение, мне нужно намерение, которое приведет меня от MainActivity к CommandSenderActivity, но мне нужно сделать это, когда отпечаток пальца проверен правильно (поэтому я попытался построить Intent внутри onAuthenticationSucceeded). В чем здесь может быть моя ошибка?

кстати, спасибо, что проявили терпение, чтобы помочь таким новичкам, как я, вы, ветераны, здесь лучшие !!!

(О, и игнорируйте аннотации, они на испанском, просто игнорируйте их: p)

1 Ответ

0 голосов
/ 04 сентября 2018

startActivity(intent); это метод Класс контекста , поэтому вы можете использовать переменную контекста в вашем FingerprintHandler классе:

Intent intent = new Intent(context, CommandSenderActivity.class);
context.startActivity(intent);
...