我正在使用Google Api将Google Login集成到我的Android应用程序中。 目前它运行良好,我能够检索用户名和电子邮件,但我无法检索用户个人资料图片。
当我尝试执行account.getPhotoUrl();
时,我总是得到"null
"。 我在我的谷歌帐户中设置了个人资料图片,所以我很确定我应该得到与"null
"不同的东西。 显然,photo_url被声明为 Uri。
当我在Google开发人员上阅读时,我添加了.requestProfile()
来检索有关用户个人资料的信息,但我总是null
个人资料照片。
如何解决问题?
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.requestProfile()
.build();
mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
....
private void handleSignInResult(Task<GoogleSignInAccount> completedTask) {
try {
GoogleSignInAccount account = completedTask.getResult(ApiException.class);
googleName = account.getDisplayName();
goofleEmail = account.getEmail();
photo_url = account.getPhotoUrl();
Log.w(TAG, "test url" + photo_url);
mainPresenter.dataSocialAPI(googleName, goofleEmail, userType);
signOut();
} catch (ApiException e) {
Log.w(TAG, "signInResult:failed code=" + e.getStatusCode());
}
}
可能迟到了,但我在毕加索找到了这个解决方案:
在依赖项下添加此内容 app/build.grade
implementation 'com.squareup.picasso:picasso:2.5.2'
在您的活动中:
Uri personPhoto = acct.getPhotoUrl();
photo = root.findViewById(R.id.accPhoto);
Picasso.with(this).load(personPhoto).into(photo);