Android在“内部”上创建一个新文件夹;“设备存储”;
因此,我正在创建一个将保存图片的应用程序。但是我想把所有的图片打包到主“设备存储”目录下一个易于访问的文件夹中 我想保存到外部卡,但我正在测试的设备没有,其他设备也可能没有(最终,我将允许应用程序用户决定是否需要内部或外部内存) 现在,我正试图找到这样的文件夹:Android在“内部”上创建一个新文件夹;“设备存储”;,android,Android,因此,我正在创建一个将保存图片的应用程序。但是我想把所有的图片打包到主“设备存储”目录下一个易于访问的文件夹中 我想保存到外部卡,但我正在测试的设备没有,其他设备也可能没有(最终,我将允许应用程序用户决定是否需要内部或外部内存) 现在,我正试图找到这样的文件夹: String directory = "/mnt/CPB"; File mainFolder = new File(directory); if(mainFolder.exists() && mainFolder.isD
String directory = "/mnt/CPB";
File mainFolder = new File(directory);
if(mainFolder.exists() && mainFolder.isDirectory()){
Toast.makeText(getApplicationContext(), "CPB Is Made", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), "CPB does not exist", Toast.LENGTH_SHORT).show();
mainFolder.mkdir();
}
这显然是行不通的。那我该怎么办
我希望在查看文件夹或连接到计算机以查看目录时,文件夹显示在主目录视图中。另外,我在android清单中需要任何类型的权限吗?主设备存储不是
/mnt
,通常是/storage/sdcard0
(至少在我的nexus 4上)
更好的是,使用主设备存储不是
/mnt
,它通常是/storage/sdcard0
(至少在我的nexus 4上)
更好的是,使用
但是我想把所有的图片打包到主“设备存储”目录下一个易于访问的文件夹中
从上下文来看,我将假设您指的是Android SDK所调用的内容
请注意,虽然您可能认为将用户的外部存储与另一个顶级目录混淆是一个好主意,但如果用户不同意您的评估,请不要感到震惊
最终,我将允许应用程序用户决定他们是需要内部内存还是外部内存
我猜你分别指的是和
我试图找到这样的文件夹:
String directory = "/mnt/CPB";
File mainFolder = new File(directory);
if(mainFolder.exists() && mainFolder.isDirectory()){
Toast.makeText(getApplicationContext(), "CPB Is Made", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), "CPB does not exist", Toast.LENGTH_SHORT).show();
mainFolder.mkdir();
}
您没有对/mnt
的读/写访问权限,用户也没有访问权限
您的目标似乎是环境。getExternalStorageDirectory()
。但是,您应该强烈地考虑<代码>环境.GETEngultStRealEngEngDistOrthyYe()/代码>(对于常见的位置,如照片和材料)或<代码> GETEXPLAL FILDES()/<代码> <代码>上下文< /代码>(适用于外部存储的应用程序特定位置)。
在android清单中我需要任何类型的权限吗
外部存储上的所有位置都需要Android 4.3及更高版本上的WRITE_external_存储
。另外,Environment
提供的外部存储上的位置也需要Android 4.4+上的WRITE\u external\u存储
但是,如果使用getExternalFilesDir()
,则在Android 4.4+上不需要编写外部存储。这是考虑使用该位置的另一个原因。
还要注意的是,WRITE\u EXTERNAL\u STORAGE
在Android 6.0+中是一个危险的
权限,这意味着如果您的targetSdkVersion
是23+,您必须在运行时请求它。另外,无论targetSdkVersion
,用户都可以决定不授予您该权限。因此,避免写入外部存储通常是一个好主意
但是我想把所有的图片打包到主“设备存储”目录下一个易于访问的文件夹中
从上下文来看,我将假设您指的是Android SDK所调用的内容
请注意,虽然您可能认为将用户的外部存储与另一个顶级目录混淆是一个好主意,但如果用户不同意您的评估,请不要感到震惊
最终,我将允许应用程序用户决定他们是需要内部内存还是外部内存
我猜你分别指的是和
我试图找到这样的文件夹:
String directory = "/mnt/CPB";
File mainFolder = new File(directory);
if(mainFolder.exists() && mainFolder.isDirectory()){
Toast.makeText(getApplicationContext(), "CPB Is Made", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), "CPB does not exist", Toast.LENGTH_SHORT).show();
mainFolder.mkdir();
}
您没有对/mnt
的读/写访问权限,用户也没有访问权限
您的目标似乎是环境。getExternalStorageDirectory()
。但是,您应该强烈地考虑<代码>环境.GETEngultStRealEngEngDistOrthyYe()/代码>(对于常见的位置,如照片和材料)或<代码> GETEXPLAL FILDES()/<代码> <代码>上下文< /代码>(适用于外部存储的应用程序特定位置)。
在android清单中我需要任何类型的权限吗
外部存储上的所有位置都需要Android 4.3及更高版本上的WRITE_external_存储
。另外,Environment
提供的外部存储上的位置也需要Android 4.4+上的WRITE\u external\u存储
但是,如果使用getExternalFilesDir()
,则在Android 4.4+上不需要编写外部存储。这是考虑使用该位置的另一个原因。
还要注意的是,WRITE\u EXTERNAL\u STORAGE
在Android 6.0+中是一个危险的
权限,这意味着如果您的targetSdkVersion
是23+,您必须在运行时请求它。另外,无论targetSdkVersion
,用户都可以决定不授予您该权限。因此,避免写入外部存储通常是一个好主意。所以,我一直在读的是[getExternalStorageDirectory()
][1]将在外部内存中创建文件夹,但如果没有外部内存,它将在内部内存中创建文件夹?[1] :来自同一页:注意:不要被这里的“外部”一词所迷惑。此目录最好被视为媒体/共享存储。它是一个文件系统,可以保存相对大量的数据,并在所有应用程序之间共享(不强制执行权限)。传统上,这是一个SD卡,但它也可以实现为设备中的内置存储,与受保护的内部存储不同,可以作为文件系统安装在计算机上。因此,我一直在读的是[getExternalStorageDirectory()
][1]将在外部内存中创建一个文件夹,但是,如果没有外部存储器,它会使它在内部吗?[1] :来自t