在我用于流媒体视频的MediaPlayer应用程序中,我正在使用以下代码
File temp = File.createTempFile("mediaplayertmp", "dat");
运行时会抛出像
这样的异常Parent directory of file in not
writable:/sdcard/
mediaplayertmp43912.dat
我不知道如何处理这个问题,我想知道当我们执行该代码时意味着文件将被创建。任何人都知道解决方案意味着请帮助一些代码。
答案 0 :(得分:17)
你的请求是否有权在android清单中写入SD卡?
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
答案 1 :(得分:5)
我不确定你想要做什么......如果目录不可写,那么它是不可写的。为用户告诉他们他们的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
}
答案 2 :(得分:1)
我有同样的问题。我的应用程序工作正常,直到我更新SDK。现在需要WRITE_EXTERNAL_STORAGE权限才能写入SD卡。
答案 3 :(得分:0)
代码在Android 1.5或更早版本中按原样运行。更新的任何内容都要求应用程序在其清单中明确要求WRITE_EXTERNAL_STORAGE权限。