Android: приложение закрывается при попытке сохранить изображение на SD-карту

1

Я пытаюсь сохранить изображение на SD-карту, и я добавил для него некоторый код. Но после нажатия кнопки "ОК"/"Checkmark" в камере мое приложение выйдет. Должен ли я проверить, не каталог, который я пытаюсь сохранить в существует? Как я могу это сделать?..! file.exists() {file.mkdirs}? В моем коде я попытался сохранить его в папке /Android, которая существует на каждой SD-карте.

           file = new File(Environment.getExternalStorageDirectory().getPath()
                 + "/Android/" + "bhe_app" + ".jpg");

    imageUri = Uri.fromFile(file);

i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        i.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);

        startActivityForResult(i, cameraData);

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
        Bundle extras = data.getExtras();
        bmp = (Bitmap) extras.get("data");
        iv.setImageBitmap(bmp);


    }
}
Теги:
image
save
android-camera
android-camera-intent

2 ответа

3
Лучший ответ

Создайте каталог перед созданием файла.

boolean createdDirectory = new File(Environment.getExternalStorageDirectory().getPath() + "/directory1/directory2/directory3/").mkdirs();

переменная createdDirectory будет

true тогда и только тогда, когда каталог был создан вместе со всеми необходимыми родительскими каталогами; false в противном случае

Вам нужно будет убедиться, что ваше приложение имеет разрешение на запись на SD-карту (проверьте ваш AndroidManifest.xml)

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  • 0
    я только добавил разрешение .. спасибо
0

Вы дали разрешение Write_External_Storage в AndroidManifest.xml, это важно для сохранения фотографий на SD-карте

  • 0
    я только что сделал .. но приложение все еще закрывается после того, как я нажал кнопку "OK" / галочку на камере ... может ли это быть, потому что нет каталога как такового? ... и как проверить, если каталог выходит и он не создавать это .. что-то делать с dir.mkdirs ()?
  • 0
    в чем ошибка, посмотрите в журнале и попробуйте сохранить образ непосредственно на SD-карте вместо того, чтобы поместить его в каталог
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню