Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获得Android SD卡的大小?_Java_Android_Storage - Fatal编程技术网

Java 如何获得Android SD卡的大小?

Java 如何获得Android SD卡的大小?,java,android,storage,Java,Android,Storage,首先,我想说,是的,我已经阅读并尝试了关于这个主题的每一个问题,所以请不要把我和其他答案联系起来。例如,我尝试了类似的操作,但返回的结果与内部存储相同。我有大约12GB的内部存储空间和4GB的SD卡存储空间,但无论我使用什么方法,我都会得到与内部空间完全相同的SD空间数字。有没有其他方法来获取SD卡空间?好吧,我最后编写了一段代码,使用文件/etc/vold.fstab来获取所有实际的外部存储设备。在连接了扩展底座并安装了存储设备的TF101上,这将正确返回microSD、SD和usb驱动器的路

首先,我想说,是的,我已经阅读并尝试了关于这个主题的每一个问题,所以请不要把我和其他答案联系起来。例如,我尝试了类似的操作,但返回的结果与内部存储相同。我有大约12GB的内部存储空间和4GB的SD卡存储空间,但无论我使用什么方法,我都会得到与内部空间完全相同的SD空间数字。有没有其他方法来获取SD卡空间?

好吧,我最后编写了一段代码,使用文件
/etc/vold.fstab
来获取所有实际的外部存储设备。在连接了扩展底座并安装了存储设备的TF101上,这将正确返回microSD、SD和usb驱动器的路径

private ArrayList<String> extStorageLoc(){
        String[] toSearch = readFile("/etc/vold.fstab").split(" ");
        ArrayList<String> out = new ArrayList<String>();
        for(int i = 0; i < toSearch.length; i++){
            if(toSearch[i].contains("dev_mount")){
                if(new File(toSearch[i+2]).exists()){
                    out.add(toSearch[i+2]);
                }
            }
        }
        return out;
}
private ArrayList extStorageLoc(){
字符串[]toSearch=readFile(“/etc/vold.fstab”).split(“”);
ArrayList out=新的ArrayList();
for(int i=0;i
您试过这个吗?这可能会有帮助(在C/C++中,但在Java中也会有类似的效果)@PandaConda谢谢,我用Java尝试了这个实现,但是返回了一个0值。如果你们都好奇的话,我已经用下面写的一些代码来回答了。