2013-05-08 3 views
8

Добавление пути к файлу в дополнение к намерению захвата изображения приводит к тому, что приложение камеры работает неправильно на планшете Android TF300t с версией системы запаса 4.2.1. Нажатие кнопки «done» ничего не делает - даже закрытие активности приложения камеры. Результат не возвращается.Съемка фотографий «просто» не работает

код я использую был извлечен из Adroid developers site

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
File imageFile = createImageFile(); 
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(imageFile)); 
startActivityForResult(cameraIntent, THIS_CAMERA_REQUEST); 

С createImageFile() определяется как:

private File createImageFile() throws IOException { 
    File outputDir = getBaseContext().getCacheDir(); 

    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); 
    String imageFileName = "photo_" + timeStamp + "_"; 
    File image = new File(outputDir, imageFileName); 

    return image; 
} 

Когда линия

cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(imageFile)); 

удаляется, камера приложение действует как ожидалось.

Есть ли какое-либо резонансное обходное решение? Я бы предпочел не создавать приложение для камеры, просто чтобы сделать снимок.

ответ

4

Проблемные линия:

File outputDir = getBaseContext().getCacheDir(); 

Я заменил его:

private File createImageFile() throws IOException { 
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); 
    String imageFileName = "1mind_" + timeStamp + ".jpg"; 
    File photo = new File(Environment.getExternalStorageDirectory(), imageFileName); 
    return photo; 
} 

Оказывается, изображение должно быть сохранено на внешнем накопителе не в кэш-директорию.

+2

Ran в ту же проблему. Очень обманчивая ошибка без сообщения об ошибке. Я пытался сохранить фотографию непосредственно в частном хранилище моего приложения, и это не-нет. Спасибо за сообщение. –

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