java - 更新到 Android 4.4 KitKat 后无法找到 Movies 文件夹

标签 java android android-4.4-kitkat android-external-storage

在我的应用程序中,我使用下面的代码列出存储中的 Movies 文件夹中的电影。但自从我将我的 Nexus 7 平板电脑升级到 Android 4.4 后,此代码无法正常工作(代码末尾的 toast 弹出,意味着代码在该文件夹中没有找到任何文件,我什至不知道它是否可以访问该文件夹)。知道我应该更改什么或新更新中更改了什么吗?

    private void populateSpinners() {

        Boolean foundVideoFiles;

        // videos spinner
        File videoFolder =
                Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES)
                        .getAbsoluteFile();

        if (videoFolder.listFiles() != null) {
            foundVideoFiles = true; //found some files
            ArrayAdapter<File> movieAdapter = new ArrayAdapter<File>(this,
                    android.R.layout.simple_spinner_dropdown_item, videoFolder.listFiles());
            _spinner_videos.setAdapter(movieAdapter);

            //Restore perviously selected video
            int spinnerValue = _preferences.getInt("spinner_videos", -1);
            if (spinnerValue != -1) {
                _spinner_videos.setSelection(spinnerValue);
            }
        } else {
            foundVideoFiles = false;
        }

        //Error handling
        if (foundVideoFiles == false) {
            Toast.makeText(this, "ERROR: NO MOVIES WERE FOUND IN" + videoFolder, Toast.LENGTH_LONG).show();
        }
}

如果我在平板电脑上使用图库应用程序,我可以在那里看到电影,因此更新期间电影不会被删除。

最佳答案

请注意,从 Android 4.4 开始(根据 Android 4.4 Important Behavior Changes :

Your app can not read shared files on the external storage when running on Android 4.4, unless your app has the READ_EXTERNAL_STORAGE permission. That is, files within the directory returned by getExternalStoragePublicDirectory() are no longer accessible without the permission.

确保将该权限添加到您的 list 中:

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

关于java - 更新到 Android 4.4 KitKat 后无法找到 Movies 文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20166932/

相关文章:

java - JasperReports - 表元素和空数据集

java - 游戏 : Algorithm for spawning enermies at game/window egdes

crash - 应用在Android Kitkat OS上崩溃

android - Android 4.4 中的自适应播放

android-studio - 支持 Java 1.7 的 Android Studio 预览版对我来说已损坏

java - 膨胀布局后更改 TextView 的文本

java - 使用 AES 算法进行图像加密

java - 无法打印 Long 除法和乘法的值

java - 从 InputStream 复制到 BufferedOutputStream

android - 在新的 android 模拟器上禁用首次运行的欢迎程序