在Android 13中获取CSV文件的读写权限

mzsu5hc0  于 2023-03-16  发布在  Android
关注(0)|答案(1)|浏览(823)

我正在尝试在android13中读写一个文件。
安卓清单:

<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />

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

代码:

public class MainActivity extends AppCompatActivity {
    public static String[] permissions() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
            return new String[]{
                    android.Manifest.permission.READ_MEDIA_IMAGES,
                    android.Manifest.permission.READ_MEDIA_AUDIO,
                    Manifest.permission.READ_MEDIA_VIDEO
            };
        } else {
            return new String[]{
                    android.Manifest.permission.WRITE_EXTERNAL_STORAGE,
                    android.Manifest.permission.READ_EXTERNAL_STORAGE
            };
        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ActivityCompat.requestPermissions(this, permissions(), 23);

        File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), "abc.csv");
        android.util.Log.d("OK", "onCreate: " + file.canRead());
    }
}

我获得的canRead权限总是false。我错过了什么?

yyhrrdl8

yyhrrdl81#

在Android 13设备上,您的应用无需任何权限即可在外部存储的公共目录中创建文件。
创造它们。
如果你想读取一个不是由你的应用创建的现有文件,你需要使用SAF。也不需要权限。

相关问题