Выбрать изображение из галереи, включая изображения 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);
Мне нужен Путь.
Если решения не существует, то как мы можем пропустить те изображения, которые отображаются при выборе из галереи / фотографий.
Любое предложение приветствуется. Спасибо