如何解决使用 GoogleApiClient 实现自动短信验证 Android
我正在尝试使用 GoogleApiClient 在片段中实现自动短信验证 Android。我正在关注此处的官方文档 Automatic SMS Verification with the SMS Retriever API
我卡在这部分Obtaining user phone number
以下是我的代码以及我如何尝试使用片段在 Android 中实现,其中我有一个用于电话号码的 TextInputEditText 编辑文本
我的片段声明
TextInputEditText etOtpPhoneNumber;
GoogleApiClient googleApiClient;
private static final int RESOLVE_HINT = 1;
我的片段实现了以下内容
public class smsRetriever extends Fragment implements GoogleApiClient.OnConnectionFailedListener,GoogleApiClient.ConnectionCallbacks
在 xml 中查找我的视图并初始化 GoogleApiClient
etOtpPhoneNumber = view.findViewById(R.id.et_otp_phone_number);
googleApiClient = new GoogleApiClient.Builder(requireActivity())
.addConnectionCallbacks(this)
.enableAutoManage(requireActivity(),this)
.addApi(Auth.CREDENTIALS_API)
.build();
我的方法
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
}
@Override
public void onConnected(@Nullable Bundle bundle) {
}
@Override
public void onConnectionSuspended(int i) {
}
// Obtain the phone number from the result
@Override
public void onActivityResult(int requestCode,int resultCode,Intent data) {
super.onActivityResult(requestCode,resultCode,data);
if (requestCode == RESOLVE_HINT) {
if (resultCode == RESULT_OK) {
Credential credential = data.getParcelableExtra(Credential.EXTRA_KEY);
// credential.getId(); <-- will need to process phone number string
}
}
}
我正在实施以下方法来获取有问题的用户电话号码
private void requestPhoneNumberHint() {
HintRequest hintRequest = new HintRequest.Builder()
.setPhoneNumberIdentifierSupported(true)
.build();
PendingIntent intent = Auth.CredentialsApi.getHintPickerIntent(
googleApiClient,hintRequest);
try {
startIntentSenderForResult(intent.getIntentSender(),RESOLVE_HINT,null,0);
}catch (IntentSender.SendIntentException e){
e.printStackTrace();
}
}
问题出在 startIntentSenderForResult 上,我遇到了以下错误
Expected 7 arguments but found 6
根据 startIntentSenderForResult 方法应该实现以下内容
public void startIntentSenderForResult(@SuppressLint("UnknownNullness") IntentSender intent,int requestCode,@Nullable Intent fillInIntent,int flagsMask,int flagsValues,int extraFlags,@Nullable Bundle options)
我应该为@Nullable Bundle 选项设置什么
解决方法
startIntentSenderForResult(pendingIntent.getIntentSender(),CREDENTIAL_PICKER_REQUEST,null,new Bundle());
或
startIntentSenderForResult(intent.getIntentSender(),RESOLVE_HINT,null);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。