如何修复权限错误写文件内存android?



我需要写一个函数,负责将字符串写入文件(内部内存即/internalMem/DCIM)。

我在Androidmanifest.xml文件中添加了权限

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

这是我的函数

public void save(View v, String text)  {
if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
Log.v(TAG, "Permission is not granted!");
}

final File path = Environment.getExternalStoragePublicDirectory
( Environment.DIRECTORY_DCIM );
//Environment.DIRECTORY_PICTURES
if (!path.exists()) {
path.mkdirs();
}
final File file = new File(path, "testing.txt");
if (!file.exists()) {
Log.e("cannot create the test.txt file: ", "File write failed: ");
}
try {
file.createNewFile();
FileOutputStream fOut = new FileOutputStream(file);
OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
myOutWriter.append(text);
myOutWriter.close();
fOut.flush();
fOut.close();
} catch (IOException e) {
Log.e("Exception", "File write failed: " + e.toString());
}
}

但是我观察到它捕获了调试消息&;permission is not granting &;,并且还得到以下错误

E/cannot create the test.txt file:: File write failed:
E/Exception: File write failed: java.io.IOException: Operation not permitted

有什么建议吗?

必须请求用户授予权限

你也应该知道在那里保存文件并不像设置路径那么简单,请阅读有关存储的文档

最新更新