【发布时间】:2018-09-04 18:09:18
【问题描述】:
我目前正在开发一个包含在指纹安全系统中的 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 intent = new Intent(MainActivity.class, CommandSenderActivity.class);
startActivity(intent);
问题是,我的 Android Studio 说他无法解析 Intent 构造函数,而且“startActivity”无法识别,它显示为红色。
所以这基本上是我的疑问,我需要一个将我从 MainActivity 引导到 CommandSenderActivity 的意图,但是当指纹被正确检查时我需要这样做(这就是我尝试在 onAuthenticationSucceeded 内部构建 Intent 的原因)。我的错误可能是什么?
顺便说一句,谢谢你有耐心帮助像我这样的新手,你们这些老手是最棒的!!!
(哦,忽略注释,那些是西班牙语,忽略它们:p)
【问题讨论】:
标签: java android android-studio android-intent fingerprint