首页 > 解决方案 > 如何在 Xamarin Android 中使用相机获取捕获图像的名称

问题描述

我想用相机获取捕获图像的名称。当用户单击按钮时,相机可以正常打开,但我想获取当前捕获图像的名称。

这是用户按下按钮然后打开相机时的按钮单击事件。

fab3.Click += (o, e) =>
            {
              Intent intent = new Intent(MediaStore.ActionImageCapture);
              StartActivityForResult(intent, 0);
              CloseFabMenu();

            };

这是我想读取捕获图像的名称。

 protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
    {
      base.OnActivityResult(requestCode, resultCode, data);
      //if ((requestCode == PickImageId) && (resultCode == Result.Ok) && (data != null))
      //{

        switch (requestCode)
        {
          case 0:
            if (resultCode == Result.Ok)
            {
              Bitmap bitmap = (Bitmap)data.Extras.Get("data");


            }

            break;
}

在调试模式下我得到这个输出。 在此处输入图像描述

标签: xamarinc#-4.0xamarin.android

解决方案


如何在 Xamarin Android 中使用相机获取捕获图像的名称

将 转换Android.Net.Uri为实际路径从该路径获取图像名称

然后,您可以在以下位置获取实际路径和文件名 OnActivityResult

protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
    base.OnActivityResult(requestCode, resultCode, data);
    if (requestCode == 0)
    {
        var uri = data.Data;
        string path = GetActualPathFromFile(uri);
        System.Diagnostics.Debug.WriteLine("Image path == " + path);
        string fileName = Path.GetFileName(path);
    }
}

更新:

您可以参考 Aamirkhan 的回答Getting path of capture image in Android using camera intent,它在我这边运行良好。


推荐阅读