2016-12-13 4 views
1

С помощью камеры, предназначенной для съемки в приложении, изображения дублировались с SD-карты и галереи. Вот мой код, чтобы сделать снимок:Изображения дублируются при съемке с использованием собственной камеры внутри приложения

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
      // Ensure that there's a camera activity to handle the intent 
      if (takePictureIntent.resolveActivity(getPackageManager()) != null) { 
       // Create the File where the photo should go 
       File photoFile = null; 
       try { 
        photoFile = "file to /storage/emulated/0/Pictures/folder/image.jpg" 
       } catch (IOException ex) { 
        // Error occurred while creating the File 
        Log.e("Can't create file", ex.getLocalizedMessage()); 
       } 

       Uri photoUri = Uri.fromFile(photoFile); 

       // Continue only if the File was successfully created 
       if (photoFile != null) { 
        takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri); 
        startActivityForResult(takePictureIntent, CAMERA_REQUEST_CODE); 

       } 

изображение, сохраненное в photoFile и другой же сохраняются в галерее. Как это решить?

ответ

0

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

String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); 
String imageFileName = "JPEG_" + timeStamp + "_"; 
File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES); 
File photoFile = File.createTempFile(imageFileName, ".jpg", storageDir);