Я работаю над приложением, которое использует камеру и сохраняет фотографии в DCIM/MyAppFolder. Мой первый вопрос заключается в том, следует ли сохранять его в DCIM или Pictures? Если это имеет значение. Мой второй вопрос: я заметил, что для того, чтобы папка/картинки отображались в собственном приложении галереи, требуется некоторое время. После тестирования с другими приложениями (Instagram, Snapseed, ect) эти фотографии появляются сразу. Есть ли какой-то фрагмент кода, который мне не хватает, чтобы выполнить это? Мой код выглядит следующим образом:Пользовательская папка с фотографиями, отображаемая в Галерее
public void takePhoto() {
Intent imageIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
//folder stuff
File imagesFolder = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), "MyAppFolder");
imagesFolder.mkdirs();
//String filePath = "/MyImages/QR_" + timeStamp + ".png" ;
File image = new File(imagesFolder, "IMG_" + timeStamp + ".jpg");
imageUri = Uri.fromFile(image);
imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(imageIntent, TAKE_PICTURE);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case 1:
if (resultCode == Activity.RESULT_OK) {
Uri selectedImage = imageUri;
getContentResolver().notifyChange(selectedImage, null);
ContentResolver cr = getContentResolver();
Bitmap bitmap;
try {
bitmap = android.provider.MediaStore.Images.Media
.getBitmap(cr, selectedImage);
Toast.makeText(this, selectedImage.toString(),
Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(this, "Failed to load", Toast.LENGTH_SHORT)
.show();
Log.e("Camera", e.toString());
}
}
}
}
Должен ли я изменить 'Environment.getExternalStorageDirectory()' на 'Environment.getExternalStoragePublicDirectory (Environment.DIRECTORY_DCIM)'? –
nope. потому что он будет сканировать всю SD-карту. так что держите его как есть. и, пожалуйста, примите ответ, поскольку он может помочь другим позже. – k0sh