gpt4 book ai didi

android - ContentResolver openInputStream() 在现有文件上抛出 FileNotFound

转载 作者:行者123 更新时间:2023-11-30 01:22:56 31 4
gpt4 key购买 nike

我有这个看似简单的代码

File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
File testfile = new File(path,"image.jpg");

Log.d(TAG,"testfile: " + testfile + " exists: " + testfile.exists());

Uri uri = Uri.fromFile(testfile);
ContentResolver cr = context.getContentResolver();
InputStream istr = cr.openInputStream(uri);

输出是:

testfile: /storage/emulated/0/Pictures/image.jpg exists: true

uri 值为 file:///storage/emulated/0/Pictures/image.jpg。看起来像同一个文件,但 openInputStream() 抛出 FileNotFoundException。

知道为什么吗?这是在 Android 6.0.1 上。

最佳答案

将此权限添加到您的 AndroidManifest.xml

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

当targetSdkVersion为23或以上(Android 6)时,将其放在AndroidManifest.xml中是不够的,您必须在运行时请求权限。

关于android - ContentResolver openInputStream() 在现有文件上抛出 FileNotFound,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36829963/

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