gpt4 book ai didi

android - SMS Retriever API 总是导致超时,尽管消息格式正确

转载 作者:行者123 更新时间:2023-12-04 23:50:03 28 4
gpt4 key购买 nike

这是我的 MySMSBroadcastReceiver

package com.example.gofresh;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

import com.google.android.gms.auth.api.phone.SmsRetriever;
import com.google.android.gms.common.api.CommonStatusCodes;
import com.google.android.gms.common.api.Status;

public class MySMSBroadcastReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
Status status = (Status) extras.get(SmsRetriever.EXTRA_STATUS);
switch (status.getStatusCode()) {
case CommonStatusCodes.SUCCESS:
String message = (String) extras.get(SmsRetriever.EXTRA_SMS_MESSAGE);
Toast.makeText(context,"OTP: "+message,Toast.LENGTH_LONG).show();
Log.i("Tag","OTP: " +message);
break;
case CommonStatusCodes.TIMEOUT:
Toast.makeText(context,"TIMEOUT",Toast.LENGTH_LONG).show();
Log.i("Tag","FAIL");
break;

}
}
}

这是我的 AndroidManifest
<receiver
android:name=".MySMSBroadcastReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.google.android.gms.auth.api.phone.SMS_RETRIEVED" />
</intent-filter>
</receiver>

在我的第一个布局中,有一个姓名和电话号码文本字段,由用户手动输入。下面是一个按钮,标题为“Let's go!”。
第二个布局包含 OTP 的 pinView。下面是我点击按钮时调用的 onClick 方法
public void onClick(View v) {

if (next.getText().equals("Let's go!")) {

progressBar.setVisibility(View.VISIBLE);
username = userName.getText().toString();
phoneNumber = "+91" + userPhone.getText().toString();

if (!TextUtils.isEmpty(username) && !TextUtils.isEmpty(phoneNumber)) {
if (phoneNumber.length() == 13) {
next.setText("Verify");

first.setVisibility(View.GONE);
second.setVisibility(View.VISIBLE);
topText.setText("I still don't trust you.\nTell me something that only the two of us know.");

SmsRetrieverClient client = SmsRetriever.getClient(this );

Task<Void> task = client.startSmsRetriever();

task.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Log.i("TAG","Started Operation Successfully");
}
});

task.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.i("TAG","Operation Failed");
}
});

} else {
Toast.makeText(SignIn.this, "Invalid Number Entered.\nNumber must be of 10 digits", Toast.LENGTH_LONG).show();
}
} else {
Toast.makeText(SignIn.this, "Please enter the details", Toast.LENGTH_SHORT).show();
}
} else if (next.getText().equals("Verify")) {


String OTP_Entered = pinView.getText().toString();
if(OTP_Entered.equals(OTP_Received)){
pinView.setLineColor(Color.GREEN);
textU.setText("OTP Verified");
textU.setTextColor(Color.GREEN);
goToHomeScreen();
}else{
pinView.setLineColor(Color.RED);
textU.setText("Incorrect OTP");
textU.setTextColor(Color.RED);
}
}


}

输出日志:
2019-06-10 16:10:46.830 12864-12864/com.example.gofresh I/TAG: Started Operation Successfully
2019-06-10 16:18:14.372 12864-12864/com.example.gofresh I/Tag: FAIL
2019-06-10 16:18:14.395 12864-12864/com.example.gofresh I/Tag: FAIL

我的留言格式:
<#> Your Example Code is: 123456 FA+9qCX9VSu

最佳答案

答案很简单。每个应用程序都有自己独特的哈希。
可以在此处找到此哈希的生成方式 Android - SMS Retriever API - Computing app's hash string problem

希望这可以帮助

关于android - SMS Retriever API 总是导致超时,尽管消息格式正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56524992/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com