2009-09-16 2 views
2

В моем приложении MediaPlayer для потокового видео я использую следующий кодПроблема с созданием временного файла в Android?

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

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

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

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

+0

Невозможно создать файлы TMP, которые не находятся на SD-карте? Потому что это отстой. – mxcl

ответ

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

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

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

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

0

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

Смежные вопросы