Android Google SignIn getCredentialAsync не распознанJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Android Google SignIn getCredentialAsync не распознан

Сообщение Anonymous »

Следуя этому руководству, я реализовал следующее:
В build.gradle (приложение)

Код: Выделить всё

implementation "androidx.credentials:credentials:1.3.0"
implementation "androidx.credentials:credentials-play-services-auth:1.3.0"
implementation "com.google.android.libraries.identity.googleid:googleid:1.1.1"
В MainActivity.java

Код: Выделить всё

import androidx.core.os.CancellationSignal;
import androidx.credentials.Credential;
import androidx.credentials.CredentialManager;
import androidx.credentials.CredentialManagerCallback;
import androidx.credentials.CustomCredential;
import androidx.credentials.GetCredentialRequest;
import androidx.credentials.GetCredentialResponse;
import androidx.credentials.PasswordCredential;
import androidx.credentials.PublicKeyCredential;
import androidx.credentials.exceptions.GetCredentialException;
import com.google.android.libraries.identity.googleid.GetGoogleIdOption;
import com.google.android.libraries.identity.googleid.GoogleIdTokenCredential;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import java.security.SecureRandom;
import java.util.Random;

public void startGoogleLogin() {
String serverClientId = "";

SecureRandom secureRandom = new SecureRandom();
byte[] randomBytes = new byte[24]; // 24 bytes = 192 bits
secureRandom.nextBytes(randomBytes);
String nonce = java.util.Base64.getUrlEncoder().withoutPadding().encodeToString(randomBytes);

GetGoogleIdOption googleIdOption = new GetGoogleIdOption.Builder()
.setFilterByAuthorizedAccounts(false)
.setServerClientId(serverClientId)
.setAutoSelectEnabled(true)
.setNonce(nonce)
.build();

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
CredentialManager credentialManager  = CredentialManager.create(this);

Context context = getApplicationContext();
GetCredentialRequest request = new GetCredentialRequest.Builder()
.addCredentialOption(googleIdOption)
.build();
CancellationSignal cancellationSignal = new CancellationSignal();
Executor executor = Executors.newSingleThreadExecutor();
CredentialManagerCallback callback = new CredentialManagerCallback() {
@Override
public void onResult(GetCredentialResponse result) {
Log.v(TAG, "successful get credential: " + result.getCredential().toString());
}

@Override
public void onError(GetCredentialException e) {
Log.v(TAG, "credential get fail: " + e.toString());
}
};

try {
credentialManager.getCredentialAsync(context, request, cancellationSignal, executor, callback);
} catch (GetCredentialException e) {
Log.v(TAG, "credential get fail: " + e.toString());
}
}

}
Я получаю следующую ошибку
Изображение

И сигнатура метода такая:
Изображение

Я понятия не имею, что еще попробовать. Этот метод существует внутри credentialManager, и у меня одни и те же типы для каждого аргумента.
//edit: исправлено, установив для аргумента cancelSignal значение null

Подробнее здесь: https://stackoverflow.com/questions/793 ... recognized
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»