如何获取Android SD卡的大小?

4

首先,我想说的是,是的,我已经阅读并尝试了 SO 上发布的几乎所有关于此问题的答案,请不要将其他答案链接给我。例如,我尝试了类似这个的东西,但是它返回的结果与内部存储相同。我有约12GB的内部存储和4GB的SD卡存储,但无论我使用什么方法,SD空间总是与内部空间完全相同。是否有其他获取SD卡空间的方法?


你试过这个吗? http://www.41post.com/4374/programming/android-obtaining-sd-card-memory-information - Lexandro
这可能会有所帮助 http://stackoverflow.com/questions/7829300/getting-the-size-of-a-micro-sd-card-via-c (使用C/C ++,但Java也会很相似) - PandaConda
1
@PandaConda 谢谢,我在Java中尝试了那个实现,但返回了一个值为0。 - ArmaAK
如果你们感兴趣,我下面写了一些代码来回答。 - ArmaAK
1个回答

1

好的,我最终写了一些代码,使用文件/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;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接