我正在尝试关注Saving Files参考。 API级别4为什么getExternalStoragePublicDirectory
和getExternalFilesDir
不支持?
现在我正在使用一些支持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?
答案 0 :(得分:0)
我设法在这里解决了解决方案:
只有api级别8及以上才支持getExternalStoragePublicDirectory
和getExternalFilesDir
,所以我不得不使用替代方法:
File sdCardRoot = Environment.getExternalStorageDirectory();// gave me the SDcard path.
然后我按照ref
中的描述添加了应用程序的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开发新手。
希望能帮助任何人。