2012-03-14 3 views
0

Я использую следующий код, и я не хочу хранить изображения в SDCard. i GET Exception, не найден файл или каталог. Пожалуйста, дайте мне подсказку, где я ошибаюсь! @!Невозможно создать файл для съемки с помощью камеры в Android

case 0: 
     Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
     try { 
      photo = this.createTemporaryFile("Temp", ".jpg"); 
      intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo)); 
     } catch(Exception e) { 
      Log.v("Error", "Can't create file to take picture!"); 
      break; 
     } 
     startActivityForResult(intent, RESULT_CAMERA_SELECT); 
     break; 
    case 1: 
     intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
     startActivityForResult(intent, RESULT_MEMORY_SELECT); 
     break; 
    default: 
     break; 
     } 
    } 


    private File createTemporaryFile(String part, String ext) throws Exception 
    { 
     File tempDir= Environment.getRootDirectory(); 
     tempDir=new File(tempDir.getAbsolutePath()+"/.temp/"); 
     if(!tempDir.exists()) 
     { 
      tempDir.mkdir(); 
     } 
     return File.createTempFile(part, ext, tempDir); 
    } 

С наилучшими пожеланиями

+0

хорошо, я изменил файл TEMPDIR = getFilesDir(); но теперь проблема в том, что камера берет pic, но не возвращается даже я нажимаю OK. WTf происходит !!! –

+0

Является ли ваше устройство укорененным и вы добавили правильное разрешение в манифест? – Deva

ответ

0

Убедитесь, вы кладете разрешение записи на внешнее запоминающее устройство.

и насчет создания файла таким образом:

String filePath= Environment.getExternalStorageDirectory()+"/myPic.jpeg"; 
File file=new File(filePath); 
Uri output=Uri.fromFile(file); 
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, output); 
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST); 

Этот код работает для меня ..

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