0

我正在尝试遵循保存文件参考。为什么API 级别 4 支持getExternalStoragePublicDirectorygetExternalFilesDir 不支持?

现在我正在使用他们的一些支持 API 级别 4 的示例应用程序,我使用以下代码:

public File getAlbumStorageDir(String albumName) {
    // Get the directory for the user's public pictures directory. 
    File file = new File(Environment.getExternalStoragePublicDirectory(
        Environment.DIRECTORY_PICTURES), albumName);
    if (!file.mkdirs()) {
        //Log.e(LOG_TAG, "Directory not created");
        System.out.println("Directory not created"); 
    }
    return file;
}

我收到以下错误:Call requires API level 8 (current min is 4): android.os.Environment#getExternalStoragePublicDirectory

还有什么我可以用于 4 的吗?

4

1 回答 1

0

我已经设法解决了这里是解决方案:

两者getExternalStoragePublicDirectorygetExternalFilesDir仅支持 api 8 级及更高版本,因此我不得不使用其他替代方法:

File sdCardRoot = Environment.getExternalStorageDirectory();// gave me the SDcard path.

然后我刚刚添加了应用程序的 url/路径,如参考文献中所述

String sdCardDirectory = sdCardRoot + "/Android/data/" + getApplicationContext().getPackageName();

然后我启动了一个新的 File 类并创建了mkdirs(). 然后我使用新地址启动另一个文件类并创建实际文件,如下所示:

        File file = new File(sdCardDirectory, "files");

        if(file.mkdirs() || file.isDirectory()){
            System.out.println("works.");
        }
        file = new File(file, albumName);
        try{
            if(file.createNewFile()){
                System.out.println("File Created");
            }else{
                System.out.println("File Already Exsists");
            }
        }catch (IOException ExceptionS) {
            System.out.println("Encountered the following Exception: " + ExceptionS);
        }

        if (!file.exists()) {
            System.out.println("File Does not Exist");

        }else{
            System.out.println("File Exist!");

        }

我很确定有更好的方法可以做到这一点,但是我是 android 开发的新手。

希望对任何人都有帮助。

于 2013-08-26T08:21:44.987 回答