gpt4 book ai didi

java.io.FileNotFoundException : content://com. android.contacts/contacts/24093/photo 仅适用于旧照片

转载 作者:太空宇宙 更新时间:2023-11-04 14:55:28 32 4
gpt4 key购买 nike

我正在从我的手机联系人列表中获取我的联系人图像 uri。

但是,当我尝试将图像 uri 转换为位图时,我收到错误:

java.io.FileNotFoundException: content://com.android.contacts/contacts/24093/photo

这与我设备上的旧照片有关,就好像我拍摄了一张新照片,它显示正常。

所以也许旧照片太大或不好,但异常显示java.io.FileNotFoundException

我如何验证这是访问权限问题?

      final Bitmap bitmap;
try {
bitmap = MediaStore.Images.Media.getBitmap(ab.getContentResolver(), tryUri);
ab.runOnUiThread(new Runnable() {
@Override
public void run() {
// make sure the tag is still the one we set at the beginning of this function
if (toSet.getTag() == urlStr) {
toSet.setImageBitmap(bitmap);
}
}
});
} catch (FileNotFoundException e) {
String a = "1";
} catch (IOException e) {
String a = "1";
} catch (Exception e) {
String a = "1";
}

最佳答案

两种可能性:1)您使用的 uri 不再合适。您可以使用 ContactsContract 撤回新的联系人。2) 您正在拉取的联系人 24093 可能不再存在或已合并到另一个联系人中。因此,不再有主要联系人照片。

尝试使用 ContactsContract 而不是 getBitmap。如果照片不存在,您最终会得到 null,而不是 FileNotFound 错误:

private void showPic(String photoUri) {
Bitmap[] array = new Bitmap[2];
Cursor cursor = getContentResolver().query(Uri.parse(photoUri),
new String[] {ContactsContract.Contacts.Photo.PHOTO}, null, null, null);
try {
if (cursor.moveToFirst()) {
byte[] data = cursor.getBlob(0);
if (data != null) {
array[0] = BitmapFactory.decodeStream(new ByteArrayInputStream(data));
}
}
} finally {
cursor.close();
}

if (array[0] != null) {toSet.setImageBitmap(array[0]);}
}

关于java.io.FileNotFoundException : content://com. android.contacts/contacts/24093/photo 仅适用于旧照片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23266033/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com