识别指纹后使用Intent

时间:2018-09-04 18:09:19

标签: java android android-studio android-intent fingerprint

我目前正在开发一个具有MainActivity的应用程序,该应用程序包含一个指纹安全系统,该应用程序的想法是,当识别出指纹后,该应用程序应打开另一个活动。

我所有的指纹检查内容都集中在一个名为FingerprintHandler的Java.class中,您可以在下面看到它:

@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();
}

}

我试图在onAuthenticationSucceeded方法上设置一个Intent,但是它不起作用,这基本上是我试图在onAuthenticationSucceeded内部设置的意图:

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

问题是,我的Android Studio说他无法解析Intent构造函数,而且“ startActivity”无法识别,显示为红色。

所以这基本上是我的疑问,我需要一个将我从MainActivity引导到CommandSenderActivity的意图,但是当指纹被正确检查时我需要这样做(这就是为什么我试图在onAuthenticationSucceeded内部构建Intent的原因)。我这是什么错误?

顺便说一句,感谢您有耐心帮助像我这样的新手,您在这里经验最丰富!

(哦,请忽略注释,这些注释是西班牙语的,请忽略它们:p)

1 个答案:

答案 0 :(得分:1)

startActivity(intent);Context class的一种方法,因此您可以在FingerprintHandler类中使用上下文变量:

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