Android9 外部存储无法保存文件,请详细说出如何解决以及需要的代码还有代码的位置
时间: 2024-05-03 16:17:52 浏览: 16
在 Android 9 中,应用程序无法直接访问外部存储上的文件,而是需要使用新的限制性存储权限模型。这意味着如果您想要在外部存储上保存文件,您需要请求并获得WRITE_EXTERNAL_STORAGE权限,并将文件保存到应用程序特定的目录中。
以下是解决方案的步骤和代码示例:
1. 请求WRITE_EXTERNAL_STORAGE权限
在应用程序的AndroidManifest.xml文件中添加以下权限声明:
```
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
```
然后在运行时请求该权限:
```
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_CODE);
}
```
2. 获取应用程序特定目录
您可以使用Context.getExternalFilesDir()方法获取应用程序特定的目录。例如,以下代码获取应用程序私有的外部存储目录:
```
File file = new File(getExternalFilesDir(null), "filename.txt");
```
3. 保存文件
使用FileOutputStream将文件保存到应用程序特定目录:
```
try {
FileOutputStream fos = new FileOutputStream(file);
fos.write("Hello World".getBytes());
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
```
请注意,文件写入操作可能会抛出IOException异常,因此必须处理异常。
这些代码可以放置在任何适当的位置,例如Activity或Fragment。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)