我正在尝试在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。我错过了什么?
1条答案
按热度按时间yyhrrdl81#
在Android 13设备上,您的应用无需任何权限即可在外部存储的公共目录中创建文件。
创造它们。
如果你想读取一个不是由你的应用创建的现有文件,你需要使用SAF。也不需要权限。