file.getTotalSpace()返回实际值的两倍

时间:2012-10-06 08:14:35

标签: java android file

所以我有一个root的android 4.0.3设备。每当我在'sd卡'上安装一些实际上是内部的东西时,它也会创建这个/ mnt / secure / asec分区。以下是df的部分输出。

    /mnt/sdcard              1G    65M     1G   4096
    /mnt/secure/asec         1G    65M     1G   4096

现在,如果我尝试执行以下代码。

    File f = new File("/mnt/sdcard");
    long div = (1024*1024);
    long d = f.getTotalSpace()/div;
            Log.i("Capacity",String.valueOf(d));

它向我展示的价值是2Gb。这里发生了什么?为什么android 4.0.3为这些apks创建一个安全的挂载点安装在'sd卡'上呢?这不仅仅是JellyBean的功能吗?

1 个答案:

答案 0 :(得分:1)

  

这里发生了什么?

尝试使用StatFs代替getTotalSpace(),看看您是否获得了更好的结果。

  

为什么android 4.0.3会为'sd卡'安装这些apks的安全挂载点呢?

因为该功能是在API级别8中引入的,所以这是Android中安装到SD的一部分。