【问题标题】:Xamarin Get image path from intent filterXamarin 从意图过滤器获取图像路径
【发布时间】:2015-07-16 16:07:06
【问题描述】:

我正在尝试从我想要从图片库共享到我的应用程序的图片中获取路径。

[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: content://com.google.android.apps.photos.contentprovider/0/1/content%3A%2F%2Fmedia%2Fexternal%2Fimages%2Fmedia%2F19820/ACTUAL

路径: /0/1/content://media/external/images/media/19820/ACTUAL

但是什么是ACTUAL...我怎样才能获得能够打开图像的文件名...?

【问题讨论】:

    标签: android android-intent xamarin


    【解决方案1】:

    最后,

    I found my answer here

    我不得不将 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);
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多