Как удалить дубликаты изображений в галерее при использовании камеры Android? - PullRequest
4 голосов
/ 30 марта 2011

Я использую камеру Android, чтобы сделать снимок в своей деятельности:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, getImagePath());
startActivityForResult(intent, TAKE_PHOTO_CODE);

Когда я покидаю приложение камеры, фотография сохраняется в двух местах:

  1. По пути, указанному методом getImagePath () (это правильно);
  2. В галерею. Я не хочу этого.

Как я могу предотвратить сохранение фотографии в галерее? И если я не могу сделать это, как я могу получить путь к фотографии в моем onActivityResult (), чтобы я мог удалить его?

Ответы [ 2 ]

1 голос
/ 26 апреля 2011

Для Intent.ACTION_GET_CONTENT вы можете удалить файл галереи (после копирования его в вашу папку). Возможно, это также будет работать для MediaStore.ACTION_IMAGE_CAPTUREMediaStore.EXTRA_OUTPUT). Я использую следующий фрагмент кода для удаления файла галереи по возвращении из Intent.ACTION_GET_CONTENT:

public String getRealPathFromURI(Uri contentUri) {
  String[] proj = { MediaStore.Images.Media.DATA };
  Cursor cursor = managedQuery(contentUri, proj, null, null, null);
  int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
  cursor.moveToFirst();
  return cursor.getString(column_index);
}

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  Uri u = data.getData();
  new File(getRealPathFromURI(u)).delete();
  ...
0 голосов
/ 30 марта 2011

Сохраняете ли вы изображение на SD-карту где-нибудь в вашем коде getImagePath ()?Если это так, Android Media Scanner забирает его из этого места для отображения в галерее.Вы можете создать пустой файл с именем .nomedia в каталоге, где хранятся ваши изображения, чтобы Media Scanner игнорировал все файлы мультимедиа в этой папке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...