阅读 google 个人资料图片 java.io.FileNotFoundException
Read google profile picture java.io.FileNotFoundException
我尝试在登录后读取 google 用户的个人资料图片,但是我遇到了输入流打开错误。我不想使用 Glide 或 Picasso 库。
我的代码很标准:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, 数据);
// Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...);
if (requestCode == RC_SIGN_IN) {
// The Task returned from this call is always completed, no need to attach
// a listener.
Task<GoogleSignInAccount> completedTask = GoogleSignIn.getSignedInAccountFromIntent(data);
try {
final GoogleSignInAccount account = completedTask.getResult(ApiException.class);
String email = account.getEmail();
String deviceID = Settings.Secure.getString(LoginActivity.this.getContentResolver(), Settings.Secure.ANDROID_ID);
Uri personPhotoURL = Uri.parse(account.getPhotoUrl().toString());
try {
ContentResolver resolver = getBaseContext().getContentResolver();
InputStream imageStream = resolver.openInputStream(personPhotoURL);
Bitmap selectedImage = BitmapFactory.decodeStream(imageStream);
String encodedImage = encodeImage(selectedImage);
} catch (IOException e) {
e.printStackTrace();
}
Uri显示正确Url(插入浏览器时加载图片),但imageStream打开抛出"java.io.FileNotFoundException: No content provider: https://lh3.googleusercontent.com/a-/AAuE....."。
我该如何解决这个问题?
URL 是一个 https
URL,就像这个网页的那个一样。 ContentResolver
不处理那些。
使用图像加载库,例如 Glide 或 Picasso,从 URL 加载图像。或者,使用 OkHttp 执行 Web 请求。
我尝试在登录后读取 google 用户的个人资料图片,但是我遇到了输入流打开错误。我不想使用 Glide 或 Picasso 库。 我的代码很标准:
protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, 数据);
// Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...);
if (requestCode == RC_SIGN_IN) {
// The Task returned from this call is always completed, no need to attach
// a listener.
Task<GoogleSignInAccount> completedTask = GoogleSignIn.getSignedInAccountFromIntent(data);
try {
final GoogleSignInAccount account = completedTask.getResult(ApiException.class);
String email = account.getEmail();
String deviceID = Settings.Secure.getString(LoginActivity.this.getContentResolver(), Settings.Secure.ANDROID_ID);
Uri personPhotoURL = Uri.parse(account.getPhotoUrl().toString());
try {
ContentResolver resolver = getBaseContext().getContentResolver();
InputStream imageStream = resolver.openInputStream(personPhotoURL);
Bitmap selectedImage = BitmapFactory.decodeStream(imageStream);
String encodedImage = encodeImage(selectedImage);
} catch (IOException e) {
e.printStackTrace();
}
Uri显示正确Url(插入浏览器时加载图片),但imageStream打开抛出"java.io.FileNotFoundException: No content provider: https://lh3.googleusercontent.com/a-/AAuE....."。
我该如何解决这个问题?
URL 是一个 https
URL,就像这个网页的那个一样。 ContentResolver
不处理那些。
使用图像加载库,例如 Glide 或 Picasso,从 URL 加载图像。或者,使用 OkHttp 执行 Web 请求。