Какая замена GoogleSignIn.getLastSignedInAccount при переходе на Credential Manager API/API авторизации?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Какая замена GoogleSignIn.getLastSignedInAccount при переходе на Credential Manager API/API авторизации?

Сообщение Anonymous »

GoogleSignIn.getLastSignedInAccount устарел.
Могу ли я узнать, какая альтернатива существует при переходе на Credential Manager API/API авторизации?
В настоящее время я не используйте API диспетчера учетных данных.
Я использую API авторизации для выполнения входа в систему клиента на основе фрагмента кода – https://developers.google.com/identity/ ... on/android
List requestedScopes = Arrays.asList(DriveScopes.DRIVE_APPDATA);
AuthorizationRequest authorizationRequest = AuthorizationRequest.builder().setRequestedScopes(requestedScopes).build();
Identity.getAuthorizationClient(this)
.authorize(authorizationRequest)
.addOnSuccessListener(
authorizationResult -> {
if (authorizationResult.hasResolution()) {
// Access needs to be granted by the user
PendingIntent pendingIntent = authorizationResult.getPendingIntent();
try {
// This code will enable user to perform login.
startIntentSenderForResult(pendingIntent.getIntentSender(),
REQUEST_AUTHORIZE, null, 0, 0, 0, null);
} catch (IntentSender.SendIntentException e) {
Log.e(TAG, "Couldn't start Authorization UI: " + e.getLocalizedMessage());
}
} else {
// Access already granted, continue with user action
saveToDriveAppFolder(authorizationResult);
}
})
.addOnFailureListener(e -> Log.e(TAG, "Failed to authorize", e));

Как я могу получить данные последней учетной записи для входа?

Я попробовал следующий фрагмент кода от AI. Но это не то, чего я хочу. Следующий фрагмент кода откроет диалоговое окно входа в систему. Я хочу молча получить последнюю учетную запись, которую я использовал для доступа к Google Диску.

[img]https://i. sstatic.net/U9LddoED.png[/img]

import android.content.Context;

import androidx.annotation.NonNull;
import androidx.credentials.CredentialManager;
import androidx.credentials.CredentialManagerCallback;
import androidx.credentials.GetCredentialRequest;
import androidx.credentials.GetCredentialResponse;
import androidx.credentials.exceptions.GetCredentialException;
import com.google.android.libraries.identity.googleid.GetGoogleIdOption;
import com.google.android.libraries.identity.googleid.GoogleIdTokenCredential;

public class AuthManager {
private final Context context;
private final CredentialManager credentialManager;

public AuthManager(Context context) {
this.context = context;
this.credentialManager = CredentialManager.create(context);
}

public interface AuthCallback {
void onSuccess(GoogleIdTokenCredential credential);
void onFailure(Exception e);
}

public void getLastSignedInAccount(AuthCallback callback) {
GetGoogleIdOption googleIdOption = new GetGoogleIdOption.Builder()
.setServerClientId(WENOTE_CLOUD_STORAGE_CLIENT_ID)
.build();

GetCredentialRequest request = new GetCredentialRequest.Builder()
.addCredentialOption(googleIdOption)
.build();

android.util.Log.i("CHEOK", "Call getCredentialAsync");

credentialManager.getCredentialAsync(
context,
request,
null, // pass in a CancelationSignal to allow cancelling the request
Runnable::run, // Execute the callback immediately
new CredentialManagerCallback() {
@Override
public void onResult(@NonNull GetCredentialResponse result) {
android.util.Log.i("CHEOK", "onResult " + result);

if (result != null) {
GoogleIdTokenCredential credential = (GoogleIdTokenCredential) result.getCredential();
callback.onSuccess(credential);
} else {
callback.onFailure(new Exception("No credential found"));
}
}

@Override
public void onError(@NonNull GetCredentialException e) {
android.util.Log.i("CHEOK", "onError " + e);

// Handle errors
callback.onFailure(e);
}
}
);
}
}


Подробнее здесь: https://stackoverflow.com/questions/792 ... igrating-t
Ответить

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

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

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

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

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