Android не может получить путь к облачному изображению из приложения «Фотографии»

Я попытался получить абсолютный путь, и я тоже добился успеха, но когда я пытаюсь с облачными изображениями получить это изображение и использовать его в файле приложения, он не находит и получает значение null. Я реализую получение файлов из другого приложения, например, когда вы выбираете изображение из приложения «Фотографии», «Галерея» или «Файл» и делитесь изображением с помощью моего приложения.

Здесь я получил Ури content://com.google.android.apps.photos.contentprovider/0/1/mediaKey%3A%2FAF1QipOFLMMm8uXbeDMQk-P4S0Hx1dlmRDMr4SFABfVi/ACTUAL/61235243

Когда я выбираю изображение, которое находится в облаке Google Фото, оно будет сначала загружено, а затем предоставлено мне выше URI. С этого момента я напрямую выполняю запрос и получаю имя файла «Filename.png» во всех столбцах, но не полный путь.

Когда я пытался поделиться теми же вещами с Facebook, они будут отображаться в композиции точно так, как я хочу поделиться.

Я также ссылаюсь на это по этой ссылке, чтобы получить путь из приложения Photos, но проблема связана с изображение облака.

Любой, у кого есть решение или предложение, будет оценен.


person Pratik    schedule 01.09.2015    source источник


Ответы (1)


Попробуйте сначала получить Bitmap:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
        Uri selectedImage = data.getData();

        InputStream inputStreamBitmap = null;
        Bitmap imageBitmap = null;
        try {
            inputStreamBitmap = getContentResolver().openInputStream(inputStreamBitmap);
            imageBitmap = BitmapFactory.decodeStream(inputBitmap);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } finally {
            try {
                if (inputStreamBitmap != null) {
                    inputStreamBitmap.close();
                }
            } catch (IOException ignored) {
            }
        }
        if (imageBitmap != null) {
            processImageBitmap(imageBitmap);
        } else {
            Log.e("ImageIntent", "Error: couldn't open the specified image.");
        }
    }
}

Затем вы можете сохранить Bitmap во временный файл, если хотите.

Подробнее здесь.

person Savelii Zagurskii    schedule 27.11.2015