Как я могу отобразить изображение из моего gmail в режиме навигации моего приложения?

#java #android #imageview #android-glide #google-authentication

Вопрос:

Я пытаюсь использовать библиотеку Glide, для которой я добавил зависимости:

https://github.com/bumptech/glide

. Мое имя и адрес электронной почты отображаются успешно, но моя фотография-нет. Вот фрагмент кода:

 //controls
    View headerView = navigationView.getHeaderView(0);
    tvUserName = headerView.findViewById(R.id.tvGoogleName);
    tvEmail = headerView.findViewById(R.id.tvEmail);
    imgProfile = headerView.findViewById(R.id.imgProfile);

    //google
    GoogleSignInAccount acct = GoogleSignIn.getLastSignedInAccount(this);
    if(acct != null){
        String userName = acct.getDisplayName();
        String email = acct.getEmail();
        Uri photo = acct.getPhotoUrl();

        if(photo != null){
            Toast.makeText(this, "photo is not null", Toast.LENGTH_SHORT).show(); // true
        }
        else{
            Toast.makeText(this, "photo is  null", Toast.LENGTH_SHORT).show();

        }
        tvUserName.setText(userName);
        tvEmail.setText(email);

        Glide.with(this).load(String.valueOf(photo)).into(imgProfile);
    }
 

Ответ №1:

В соответствии с документом Google

 public Uri getPhotoUrl ()
 

Возвращает URL-адрес фотографии пользователя, вошедшего в систему, если у пользователя есть фотография профиля, и вы создали свою конфигурацию, либо начиная с новых настроек Googlesign.Конструктор(GoogleSignInOptions.DEFAULT_SIGN_IN)} или с помощью GoogleSignInOptions.Builder.requestProfile() настроен; в противном случае значение равно нулю. Не гарантируется, что он будет присутствовать для всех пользователей, даже если он настроен.

Можете ли вы проверить, получаете ли вы действительный URL-адрес или нет из getPhotoUrl

Комментарии:

1. Это сработало, когда я переустановил приложение. Я добавил фотографию в свой аккаунт после того, как уже вошел в систему. Спасибо вам за ваш ответ 🙂