我正在使用FirebaseUI在我的应用中创建电话号码身份验证活动。默认情况下,重新发送OPT的时间为15秒。我想改变这个时间限制。怎么做?
public class PhoneNumberAuthentication extends AppCompatActivity {
private static final int RC_SIGN_IN = 123;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FirebaseAuth auth = FirebaseAuth.getInstance();
if (auth.getCurrentUser() != null) {
// already signed in
startActivity(new Intent(PhoneNumberAuthentication.this, MainActivity.class));
finish();
} else {
// not signed in
startActivityForResult(
AuthUI.getInstance()
.createSignInIntentBuilder()
.setAvailableProviders(
Arrays.asList(
new AuthUI.IdpConfig.Builder(AuthUI.PHONE_VERIFICATION_PROVIDER).build()
))
.build(),
RC_SIGN_IN);
}
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// RC_SIGN_IN is the request code you passed into startActivityForResult(...) when starting the sign in flow.
if (requestCode == RC_SIGN_IN) {
IdpResponse response = IdpResponse.fromResultIntent(data);
// Successfully signed in
if (resultCode == ResultCodes.OK) {
startActivity(new Intent(PhoneNumberAuthentication.this,MainActivity.class));
finish();
return;
} else {
// Sign in failed
if (response == null) {
// User pressed back button
Log.e("Login","Login canceled by User");
return;
}
if (response.getErrorCode() == ErrorCodes.NO_NETWORK) {
Log.e("Login","No Internet Connection");
return;
}
if (response.getErrorCode() == ErrorCodes.UNKNOWN_ERROR) {
Log.e("Login","Unknown Error");
return;
}
}
Log.e("Login","Unknown sign in response");
}
}
}
我附上了OPT验证活动的屏幕截图:OTP Verification Activity。重发代码计时器从15开始倒计时,当它达到0时,它启用重新发送OTP按钮。我需要增加这个倒计时时间。
答案 0 :(得分:0)
如果您只想根据时间启用或禁用重新发送OTP按钮,则可以使用处理程序
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
otpButton.setEnable(true);
}
}, 60000);
这给你60秒的时间