我正在三星设备上使用API 29(Android 10)进行测试。我想创建一个简单的txt文件。单击按钮时将执行此方法。
private void createFile() {
String path = getExternalFilesDir(null).toString();
path = path.substring(0, path.indexOf("/Android"));
Toast.makeText(getApplicationContext(), "Creating " + path + "/MyFiles/File.txt", Toast.LENGTH_LONG).show();
File file = new File(path + "/MyFiles/File.txt");
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
但是我在指令file.createNewFile()
上收到此错误:
2019-12-13 00:54:18.945 26573-26573/com.... W/System.err: java.io.IOException: Permission denied
我认为我的AndroidManifest没问题
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com...">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<application...
我已授予设置中的所有权限
请确保您在现有目录中创建文件。另外,您可能需要在运行时按照API> = 23的要求请求权限。
请参见https://developer.android.com/training/permissions/requesting