Проблема в создании временного файла в Android? - PullRequest
2 голосов
/ 16 сентября 2009

В приложении MediaPlayer для потокового видео я использую следующий код

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

во время работы выдает исключения типа

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

Я не знаю, как справиться с этой проблемой, и я хочу знать, что когда мы выполняем этот код, это означает, где файл будет создан. Любой знает, что решение означает, пожалуйста, помогите с некоторым кодом.

Ответы [ 4 ]

17 голосов
/ 06 января 2010

Ваш запрос разрешает запись на SD-карту в манифесте Android?

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
5 голосов
/ 16 сентября 2009

Я не уверен, что вы хотите сделать ... если каталог не доступен для записи, он не доступен для записи. Выдайте ошибку для пользователя, сообщающего ему, что его 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
}
1 голос
/ 17 апреля 2010

У меня была такая же проблема. Мое приложение работало нормально, пока я не обновил SDK. Теперь для записи на SD-карту требуется разрешение WRITE_EXTERNAL_STORAGE.

0 голосов
/ 26 августа 2010

Код работает как есть в Android 1.5 или более ранней версии. Что-то более новое требует, чтобы приложение специально запрашивало разрешение WRITE_EXTERNAL_STORAGE в своем манифесте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...