如何在安卓设备上添加写入文件权限

2022-09-02 23:05:08

我想使用以下方法写入文件:

 BufferedWriter buf = new BufferedWriter(new FileWriter("test2"));
 buf.write(mytext);
 buf.close();

但我得到了这个消息(file test2 read only)

如何获得写入权限?


答案 1

你有没有在你的AndroidManifest.xml文件中得到这个?

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

此外,此链接包含您需要了解的有关读取和写入文件的所有信息:

http://www.anddev.org/working_with_files-t115.html


答案 2

这个问题已经很老了,但我无论如何都要写这个答案,因为这是当你搜索“在android中写入文件权限”时的最高结果。

NotACleverMan的答案是有效的,但自从MarshMallow发布以来,必须要求用户手动提供权限。因此,必须向用户显示一个对话框,用户可以在其中显式拒绝或授予使用某些功能的权限。

摘自安卓开发者文档

从 Android 6.0(API 级别 23)开始,用户会在应用运行时(而不是在安装应用时)向应用授予权限。此方法简化了应用安装过程,因为用户在安装或更新应用时不需要授予权限。它还使用户可以更好地控制应用程序的功能;例如,用户可以选择授予相机应用对相机的访问权限,但不允许授予对设备位置的访问权限。用户可以随时通过转到应用的“设置”屏幕来撤消权限。

因此,首先必须将其包含在清单文件中

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

此后,当您需要访问指定的资源时,您必须向用户请求权限

ActivityCompat.requestPermissions(thisActivity,
            new String[]{Manifest.permission.WRITE_STORAGE},
            YOUR_PERMISSION_STATIC_CODE_IDENTIFIER);

有关实现的更多详细信息,请参阅此处


推荐