Ответ 1
Разрешено ли ваше разрешение на запись на SD-карту в манифесте андроида?
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
В моем приложении MediaPlayer для потоковой передачи видео я использую следующий код
File temp = File.createTempFile("mediaplayertmp", "dat");
при запуске он генерирует исключения, например
Parent directory of file in not
writable:/sdcard/
mediaplayertmp43912.dat
Я не разбираюсь в этой проблеме, и я хочу знать, что когда мы выполняем этот код, это означает, что файл будет создан. Любой знает, что решение означает, пожалуйста, помогите с некоторым кодом.
Разрешено ли ваше разрешение на запись на SD-карту в манифесте андроида?
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Я не уверен, что вы хотите сделать... если каталог не доступен для записи, он не доступен для записи. Выбросьте ошибку, чтобы пользователь сообщил им, что их 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 an SDCard available, continue
}
У меня была такая же проблема. Мое приложение отлично работало, пока я не обновил SDK. Теперь для этого требуется разрешение WRITE_EXTERNAL_STORAGE для записи на SD-карту.
Код работает как есть в Android 1.5 или ранее. Что-нибудь более новое требует, чтобы приложение специально запрашивало разрешение WRITE_EXTERNAL_STORAGE в своем манифесте.