2

我希望我的应用程序使用文件选择器加载文件。我尝试了一些模块来实现它,但奇怪的是我的 KitKat 有根手机和无根的早期版本可以读取存储中的目录和文件,但是对于无根的 KitKat 版本无法读取存储中的任何内容。

这是我尝试过的一些模块和我使用的代码:

Android-文件选择器

Intent intent = new Intent(this, FileChooser.class);
ArrayList<String> extensions = new ArrayList<>();
extensions.add(".csv");
intent.putStringArrayListExtra("filterFileExtension", extensions);
startActivityForResult(intent, 0);`

文件对话框

Intent intent = new Intent(this, FileChooserActivity.class);
intent.putExtra(FileChooserActivity.INPUT_START_FOLDER, Environment.getExternalStorageDirectory());
intent.putExtra(FileChooserActivity.INPUT_REGEX_FILTER, ".*csv|.*CSV");
this.startActivityForResult(intent, 0);

另外,这是我在 AndroidManifest 中使用的权限

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

<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

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

没有发现错误,只有访问存储时,什么都显示不了,但是访问根目录时,在每部手机中似乎都正常。

有没有办法修复这个或更好的支持最新版本 Android 的库/模块?

编辑解决方案: 感谢 Ish,属性 android:maxSdkVersion 可以使我的应用程序出现问题。它不应该使用该属性。代码没问题

4

0 回答 0