【问题标题】:Problem in creating Temporary File in android?在android中创建临时文件的问题?
【发布时间】:2009-09-16 05:07:54
【问题描述】:

在用于流式传输视频的 MediaPlayer 应用程序中,我使用以下代码

File temp = File.createTempFile("mediaplayertmp", "dat");

运行时会抛出异常

Parent directory of file in not 
writable:/sdcard/
mediaplayertmp43912.dat

我不知道如何处理这个问题,我想知道当我们执行该代码时意味着文件将在哪里创建。任何人都知道解决方案意味着请帮助一些代码。

【问题讨论】:

  • 难道不能创建不在 SD 卡上的 TMP 文件吗?因为那很糟糕。

标签: android


【解决方案1】:

您的请求是否允许在 Android 清单中写入 SD 卡?

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

【讨论】:

    【解决方案2】:

    我不确定你想要做什么......如果目录不可写,它就不可写。向用户抛出一个错误,告诉他们他们的 SDCard 需要写入权限(可能带有如何修复的说明)。

    在几个应用程序中,我有类似这样的代码来确保有一个 SDCard... 修改它以确保它也是可写的应该不难:

    // make sure we have a mounted SDCard
    if (!Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
        // they don't have an SDCard, give them an error message and quit
        final AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setMessage(R.string.welcome_dialog_sdcard_error)
            .setCancelable(false)
            .setPositiveButton(R.string.welcome_dialog_sdcard_ok, new DialogInterface.OnClickListener() {
                public void onClick(final DialogInterface dialog, final int id) {
                    finish();
                }
            });
        final AlertDialog alert = builder.create();
        alert.show();
    } else {
        // there's an SDCard available, continue
    }
    

    【讨论】:

      【解决方案3】:

      我也有同样的问题。在我更新 SDK 之前,我的应用程序运行良好。它现在需要 WRITE_EXTERNAL_STORAGE 权限才能写入 SD 卡。

      【讨论】:

        【解决方案4】:

        代码在 Android 1.5 或更早版本中按原样运行。任何更新的内容都需要应用在其清单中明确请求 WRITE_EXTERNAL_STORAGE 权限。

        【讨论】:

          猜你喜欢
          • 2011-03-26
          • 1970-01-01
          • 2011-11-27
          • 2012-03-30
          • 1970-01-01
          • 2019-11-13
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多