gpt4 book ai didi

android - ContentResolver 在 API 级别 18 上抛出 FileNotFoundException

转载 作者:行者123 更新时间:2023-11-29 01:44:47 25 4
gpt4 key购买 nike

当我尝试在 Android API 级别 18 上使用 ContentResolver 插入文件后立即打开它时,它会抛出异常 FileNotFoundException。

如果我尝试在 API 级别 17 上运行相同的代码,它工作正常。

String fileName = DateFormat.format("yyyyMMdd_hhmmss", new Date()).toString();  

ContentValues values = new ContentValues();
values.put(Images.Media.TITLE, fileName);
values.put(Images.Media.MIME_TYPE, "image/jpeg");

ContentResolver contentResolver = getContentResolver();
Uri uri = contentResolver.insert(Media.EXTERNAL_CONTENT_URI, values);

OutputStream outstream;
try {
outstream = contentResolver.openOutputStream(uri);
image.compress(Bitmap.CompressFormat.JPEG, 90, outstream);
outstream.close();

return uri;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

我尝试使用 Images.Media.insertImage()但它也没有用。查看此方法的源代码,我意识到代码看起来很像我的代码。

最佳答案

不幸的是,使用 ContentResolver 没有按预期工作。所以我决定使用其他方法。

try {

String fileName = DateFormat.format("yyyyMMdd_hhmmss", new Date()).toString();

File dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
dir.mkdirs();

File file = new File(dir, fileName + ".jpg");

OutputStream out = new FileOutputStream(file);

image.compress(Bitmap.CompressFormat.JPEG, 90, out);

out.close();

MediaScannerConnection.scanFile(this,
new String[] { file.toString() },
null,
null);

} catch (IOException e) {
e.printStackTrace();
}

关于android - ContentResolver 在 API 级别 18 上抛出 FileNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22155446/

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