【问题标题】:Android storage limit to use sdcard for each application每个应用程序使用 sdcard 的 Android 存储限制
【发布时间】:2012-09-05 14:11:47
【问题描述】:

我需要知道每个应用程序使用 sdcard 是否有任何限制?我正在尝试在相机应用程序录制时将视频部分写入 scdard,并且在 50mb 之后(大约没有经过良好测试)我收到错误:“没有剩余空间”。虽然 sdcard 还剩 1.4 GB 可用空间。 如果有限制,我该如何更改或删除它?

谢谢

编辑:完整的错误信息:

FileNotFoundException: /sdcard /20120905_180841_VIDEO_PART89.bin (No space left on device)

这是我的写作方法:

private void write(byte[] DataByteArray, String DestinationFileName)
{

    OutputStream output = null;

    try {
        output = new BufferedOutputStream(new FileOutputStream(DestinationFileName)); //exception occurs here
        output.write( DataByteArray );        
    }
    catch(FileNotFoundException ex){
        Log.e(Helper.LOG_TAG, "FileNotFoundException: " + ex.getMessage());
    }
    catch(IOException ex){
        Log.e(Helper.LOG_TAG, "IOException" +  ex.getMessage() + " " + ex.getClass());
    }
    finally {
        try {
            if(output != null)
                output.close();
        } catch (IOException e) {
            Log.e(Helper.LOG_TAG, "IOException while closing output " + e.getMessage() + " " + e.getClass());
        } 
    }

【问题讨论】:

  • 据我所知,没有限制!

标签: java android android-sdcard android-permissions


【解决方案1】:

每个应用使用 sdcard 是否有任何限制?

没有。

我正在尝试在相机应用程序录制时将视频部分写入 scdard,并且在 50mb 之后(大约未经过良好测试)我收到错误:“没有剩余空间”。

确保您正在写入外部存储。

【讨论】:

  • 我编辑了我的答案。我正在使用“BufferedOutputStream”写入 sdcard。而且我确定该应用正在写入外部存储。可能是 BufferedOutputStream 有问题?
  • @buttib:路径中不能有空格,如 LogCat 错误所示。删除空间,然后重试。此外,您的路径通常是错误的——请使用Environment.getExternalStorageDirectory() 来获取外部存储的根目录(提示:它不是/sdcard),或者更好的是,使用getExternalFilesDir()Environment.getExternalPublicStorageDirectory() 而不是倾倒东西外部存储的根。
  • 实际上我的路径中没有空间。我刚刚传错了。无论如何,谢谢你的帮助。使用“Environment.getExternalPublicStorageDirectory()”解决了我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-30
  • 2012-05-31
  • 2015-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多