Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android 9内部备忘录上访问数据文件_Java_Android - Fatal编程技术网

Java 在Android 9内部备忘录上访问数据文件

Java 在Android 9内部备忘录上访问数据文件,java,android,Java,Android,5年前,我在安卓4.5上开发了一个小应用程序。 此应用程序用于在.csv文件(文本文件)上搜索文件中的某个项目。 数据.csv文件位于智能卡(外部存储器)上 这是有效的。 今天我换了手机,在安卓9.0上运行。 我将我的应用程序更改为仅在“/storage/simulated/0/Download/”中的内部内存上运行。 但我得到了以下信息: 在几个内部目录中 java.io.FileNotFoundException:/storage/simulated/0/Download/books.csv

5年前,我在安卓4.5上开发了一个小应用程序。 此应用程序用于在.csv文件(文本文件)上搜索文件中的某个项目。 数据.csv文件位于智能卡(外部存储器)上 这是有效的。 今天我换了手机,在安卓9.0上运行。 我将我的应用程序更改为仅在“/storage/simulated/0/Download/”中的内部内存上运行。 但我得到了以下信息: 在几个内部目录中 java.io.FileNotFoundException:/storage/simulated/0/Download/books.csv(权限被拒绝)java.io.FileNotFoundException:/storage/simulated/0/Movies/books.csv(权限被拒绝)

文件存在,我可以用一个简单的文本编辑器在手机上打开它。 我搜索了如何在内部存储中读取,但没有找到解决方案。 你能帮忙吗。
谢谢

您必须检查运行时权限

private static final int WRITE_EXTERNAL_STORAGE = 0;
private static final int REQUEST_PERMISSION = 0;

int permissionCheckStorage = ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE);
if (permissionCheckStorage != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions( MainActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, WRITE_EXTERNAL_STORAGE);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
        && ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
            REQUEST_PERMISSION);

    return;
}
并在清单文件中添加权限

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


我怀疑您正在运行Android 6.0棉花糖(API 23)或更高版本。如果是这种情况,您必须在尝试读/写外部存储之前实现运行时权限。

您可以从用户端读写外部文件获得权限吗?是的,我的问题中提到了这一点。我使用的是Android 9I,我也在Android参数的应用程序区授权了我的应用程序,并且可以下载一些类似dir的内容。我不理解访问外部存储(在我的程序中)的需要,正如我想阅读INTERNAL storage?@user1640478一样,您可以获得
/storage/emulated/0/
作为您想要的外部存储路径。