我正在尝试从我想要从图片库分享到我的应用的图像路径。
[IntentFilter( new [] {Intent.ActionSend}, Categories = new [] { Intent.CategoryDefault}, DataMimeType = "image/*" )]
public class MainActivity : FormsApplicationActivity
{
if (keys.Contains(Intent.ExtraStream))
{
var uri = (Android.Net.Uri)Intent.GetParcelableExtra(Intent.ExtraStream);
var path = uri.Path;
Console.WriteLine (uri);
Console.WriteLine (path);
}
}
我得到这个作为输出:
URI: 内容://com.google.android.apps.photos.contentprovider/0/1/content%3A%2F%2Fmedia%2Fexternal%2Fimages%2Fmedia%2F19820/ACTUAL
路径: / 0/1 /内容://媒体/外部/图像/媒体/ 19820 /实际但是什么是ACTUAL ...我怎么能得到文件名才能打开图像......?
答案 0 :(得分:1)
最后,
我必须将uri发送给这个好方法:
private string GetFilePath(Android.Net.Uri uri)
{
string[] proj = {MediaStore.Images.ImageColumns.Data};
//Deprecated
//var cursor = ManagedQuery(uri, proj, null, null, null);
var cursor = ContentResolver.Query (uri, proj, null, null, null);
var colIndex = cursor.GetColumnIndex(MediaStore.Images.ImageColumns.Data);
cursor.MoveToFirst();
return cursor.GetString(colIndex);
}