Получение Uri изображения, когда пользователь загружает его из галереи БЕЗ сохранения дубликата - PullRequest
0 голосов
/ 10 июня 2019

Я хочу разрешить пользователям загружать изображения в мое приложение из своей галереи, а затем я сохраню их URI в своей БД, чтобы отслеживать загрузку.Прямо сейчас я получаю Uri из загруженных изображений, как указано в этом SO Ответе:

Получить путь к файлу изображения на Android

Проблема с этим ответом - этотребуется, чтобы изображение было сохранено во второй раз.

String path = MediaStore.Images.Media.insertImage(context, img, "title, null);

Я не хочу создавать дубликаты изображений в галерее пользователей, но мне нужно получить Uri из загруженного ими изображения,Любые предложения?

Код, который я сейчас использую, чтобы получить изображение Uri:

Uri selectedImage = data.getData();
        Log.d(TAG, "Imediate Uri: " + selectedImage);
        Bitmap bitmap = null;
        try {
            bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImage);
        } catch(FileNotFoundException e) {
            e.printStackTrace();
        } catch(IOException e) {
            e.printStackTrace();
        }
        Uri tempUri = getImageUri(getApplicationContext(), bitmap);

    public Uri getImageUri(Context inContext, Bitmap inImage) {
    ByteArrayOutputStream bytes = new ByteArrayOutputStream();
    inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
    String path = MediaStore.Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null);
    return Uri.parse(path);
}

1 Ответ

0 голосов
/ 10 июня 2019

Я бы предложил разместить изображение в хранилище, таком как Amazon S3, Firebase Storage / Google Cloud Storage. Это сгенерирует URI / URL, и вы можете опубликовать этот URI в вашей базе данных.

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

P.S .: Большинство этих решений для хранения данных также имеют встроенные API, поэтому вы не обязаны публиковать URI в базе данных.

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