Выбрать изображение из галереи, включая изображения Picasa/AutoBackup

Я имею дело с Pick галереи изображений и показать их в приложении, а также сохранить их путь для некоторых ссылок в будущем.

Я смог выбрать те изображения из галереи, которые хранятся на устройстве, как в какой-то папке, как Загрузки, с помощью этого кода:

Intent intent = new Intent (Intent.ActionPick, Android.Provider.MediaStore.Images.Media.ExternalContentUri);
intent.SetType ("image/*");
StartActivityForResult (Intent.CreateChooser (intent, "Select photo"), 0);

и в результате:

public override void OnActivityResult (int requestCode, Result resultCode, Intent data)
        {
            base.OnActivityResult (requestCode, resultCode, data);

case 0:
          string FilePath = GetPathToImage (data.Data);
}

private string GetPathToImage(Android.Net.Uri uri)
        {
            string path = null;
            string[] projection = new[] { Android.Provider.MediaStore.Images.Media.InterfaceConsts.Data };
                using (ICursor cursor = this.Activity.ManagedQuery(uri, projection, null, null, null))
                {
                    if (cursor != null)
                    {
                        int columnIndex = cursor.GetColumnIndexOrThrow(Android.Provider.MediaStore.Images.Media.InterfaceConsts.Data);
                        cursor.MoveToFirst();
                        path = cursor.GetString(columnIndex);
                    }
                    else
                    {
                        return uri.Path;
                    }
                }
}

У меня такой вопрос: я могу получить пути к изображениям, которые помещены в какую-то локальную папку в галерее, но для таких папок, как Picasa/Autobackup, я не могу получить путь.

Примечание. Для локальных изображений путь начинается с содержимого:// Для другого com.android.... вот так.

Итак, есть ли обходной путь, чтобы получить пути этих изображений.

Я не хочу делать так, чтобы просто отображать изображение:

final InputStream is = getContentResolver().openInputStream(imageUri);

Мне нужен Путь.

Если решения не существует, то как мы можем пропустить те изображения, которые отображаются при выборе из галереи / фотографий.

PS: Известная проблема

Любое предложение приветствуется. Спасибо

0 ответов

Другие вопросы по тегам