Android 当我将安卓设备插入大电脑时,如何找到我在大电脑上看到的目录
当我把我的设备插入大电脑时,我看到了下图 如何使用Android应用程序以编程方式查找这两个目录 更新 我编写了实用程序类来推导根。不幸的是,它适用于minSdkVersion=19 问题依然存在:是否有任何解决方案至少适用于SDK=15 附言 人们否决了这个绝对正常的问题:你们只是在宣称自己是小丑 如何使用Android应用程序以编程方式查找这两个目录 你没有 标签为Phone的可能就是androidsdk所指的。我这么说大概是因为设备制造商似乎改变了这个标签——我通常把它称为内部存储或内部存储。要获取外部存储的根目录,请使用Environment.getExternalStorageDirectory。请注意,这要求您持有读取外部存储或写入外部存储权限,包括在运行时请求这些权限Android 当我将安卓设备插入大电脑时,如何找到我在大电脑上看到的目录,android,directory-structure,Android,Directory Structure,当我把我的设备插入大电脑时,我看到了下图 如何使用Android应用程序以编程方式查找这两个目录 更新 我编写了实用程序类来推导根。不幸的是,它适用于minSdkVersion=19 问题依然存在:是否有任何解决方案至少适用于SDK=15 附言 人们否决了这个绝对正常的问题:你们只是在宣称自己是小丑 如何使用Android应用程序以编程方式查找这两个目录 你没有 标签为Phone的可能就是androidsdk所指的。我这么说大概是因为设备制造商似乎改变了这个标签——我通常把它称为内部存储或内部存
标签卡可能是指一些可移动介质。您无法使用的根目录。这可能会帮助您:
由于该方法,您可以列出所有装载的外部存储器路径。我在我的项目中使用它将数据存储在sd卡中,并在20多台设备上进行了测试。它是外部存储目录。您可以通过、环境访问。getExternalStorageDirectory@Divyesh不,不需要。tEnviroment.getExternalStorageDirectory提供手机存储目录谢谢,但我需要两者。我的相机应用程序成功地将照片存储在可移动存储上。我也不想。我被剥夺了吗?@Dims:欢迎您使用中概述的技术来处理可移动存储,例如getExternalFilesDirs、ACTION\u OPEN\u DOCUMENT。另请参见。您能否提示如何使用此技术查找DCIM目录?@Dims:如果您指的是应用程序唯一的DCIM目录,请使用getExternalFilesDirsEnvironment.directory\u DCIM或getExternalMediaDirsEnvironment.directory\u DCIM。如果返回2+个项目,则第二个和后续项目位于可移动存储上,对于您的应用程序是唯一的,并且可以由您使用普通的文件系统API使用。如果您指的是Android 7.0+上的某个常见DCIM目录,.@Dims:或者,对于常见DCIM目录,则指Android 5.0+上的某个常见DCIM目录,尽管用户可能不会选择DCIM,也可能不会选择可移动存储。
public class RootsUtil {
private final static String seed = Environment.DIRECTORY_PICTURES;
public final static File[] getRoots(Context context) {
File[] paths = context.getExternalFilesDirs(seed);
if( paths.length <= 1 ) {
return new File[] { Environment.getExternalStorageDirectory() };
}
else {
while(true) {
int count = 1;
for (int i = 1; i < paths.length; ++i) {
if (paths[0].getName().equals(paths[i].getName())) {
count++;
}
}
if( count==paths.length ) {
for (int i = 0; i < paths.length; ++i) {
paths[i] = paths[i].getParentFile();
}
}
else {
break;
}
}
return paths;
}
}
}