Пока что я обнаружил, что с помощью службы Google можно получать все электронные письма пользователей без какого-либо разрешения, используя следующий код:
private static final int RC_SIGN_IN = 100;
Внутри OnCreate()
или нажатие кнопки:
AuthUI.SignInIntentBuilder builder = AuthUI.getInstance().createSignInIntentBuilder();
if (getSelectedTosUrl() != null && getSelectedPrivacyPolicyUrl() != null) {
builder.setTosAndPrivacyPolicyUrls(getSelectedTosUrl(), getSelectedPrivacyPolicyUrl());
}
builder.build();
startActivityForResult(builder.build(), RC_SIGN_IN);
И чтобы получить результаты
@Nullable
private String getSelectedPrivacyPolicyUrl() {
return null;
}
@Nullable
private String getSelectedTosUrl() {
return null;
}
@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN) {
handleSignInResponse(resultCode, data);
}
}
private void handleSignInResponse(int resultCode, @Nullable Intent data) {
IdpResponse response = IdpResponse.fromResultIntent(data);
// Successfully signed in
if (resultCode == RESULT_OK) {
// startSignedInActivity(response);
// finish();
Log.e(TAG, String.valueOf(response));
} else {
// Sign in failed
if (response == null) {
// User pressed back button
// showSnackbar(R.string.sign_in_cancelled);
Log.e(TAG, "Sign-in error: failed");
return;
}
if (response.getError().getErrorCode() == ErrorCodes.NO_NETWORK) {
// showSnackbar(R.string.no_internet_connection);
Log.e(TAG, "Sign-in error: no net");
return;
}
// showSnackbar(R.string.unknown_error);
Log.e(TAG, "Sign-in error: ", response.getError());
}
}
Но моя проблема в том, что диалоговое окно электронной почты пользователя открывается в предварительно сделанном входе в систему, но я хотел бы использовать свой собственный.Какие-нибудь советы ?вот источник библиотека google