如何解决Android 30 (11) 文件访问
我编写了如下代码,但无法加载文件。
仅供参考,仅允许媒体访问。
我无法访问现有文件,但只能访问新创建的文件。
如果你让我访问所有文件,我就会让你访问所有文件,但奇怪的是,你不应该只允许媒体访问。
你知道原因吗?
代码1
File[] files = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)+File.separator+"YeeStudioAutocomplete").listFiles();
ArrayList<BackupData> DataList = new ArrayList<>();
if (files != null) {
for (File file : files) {
if (file.getName().contains(".db") && file.getName().contains("Y_Autocomplete_"))
DataList.add(new BackupData(file.getName().replace("Y_Autocomplete_","").replace(".db",""),file.getPath()));
}
}
return DataList;
代码 2
Cursor cursor = context.getContentResolver().query(MediaStore.Downloads.EXTERNAL_CONTENT_URI,new String[]{
MediaStore.Downloads.DATA,MediaStore.Downloads.MIME_TYPE,MediaStore.Downloads.DISPLAY_NAME
},null,null);
ArrayList<BackupData> DataList = new ArrayList<>();
while (cursor.moveToNext()) {
if (cursor.getString(cursor.getColumnIndex(MediaStore.Downloads.DATA)).startsWith(Environment.getExternalStorageDirectory().getAbsolutePath()) &&
(cursor.getString(cursor.getColumnIndex(MediaStore.Downloads.MIME_TYPE)) + "").contains("application/octet-stream") &&
cursor.getString(cursor.getColumnIndex(MediaStore.Downloads.DATA)).contains("/YeeStudioAutocomplete/")) {
DataList.add(new BackupData(cursor.getString(cursor.getColumnIndex(MediaStore.Downloads.DISPLAY_NAME))
.replace("Y_Autocomplete_",cursor.getString(cursor.getColumnIndex(MediaStore.Downloads.DATA))));
}
}
cursor.close();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。