2009-09-16 52 views
2

在我的流媒体视频我用下面的代码在android中创建临时文件的问题?

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

在运行它的MediaPlayer程序会抛出异常喜欢

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

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

+0

那么不可能创建不在SD卡上的TMP文件?因为这很糟糕。 – mxcl 2010-09-21 14:06:50

回答

5

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

在几个应用程序我有类似的代码,这样子,以确保有一个SD卡......应该不难对其进行修改,以确保它也可写:

// 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 
} 
17

贵请求权限写入Android清单中的SD卡?

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

我有同样的问题。我的应用程序工作正常,直到我更新SDK。它现在需要WRITE_EXTERNAL_STORAGE权限才能写入SD卡。

0

该代码按原样在Android 1.5或更低版本中运行。更新的任何内容都要求应用程序在其清单中特别要求WRITE_EXTERNAL_STORAGE权限。