Monodroid - Camera Activity未返回

时间:2013-02-07 16:32:05

标签: android mono camera

我正在尝试使用相机在我的应用程序的一个活动中拍照,保存并返回文件位置以供进一步使用。 但是,当我在相机活动中按下确定按钮时,没有任何反应(尽管取消工作)。

我正在使用模拟器。

有用于调用Camera Activity的代码:

FindViewById<Button>(Resource.Id.exSetPicture).Click += delegate { 
            var dir = new Java.IO.File (
                Android.OS.Environment.GetExternalStoragePublicDirectory (
                Android.OS.Environment.DirectoryPictures), "MySuperbPictures");


            if (!dir.Exists ()) {
                dir.Mkdirs ();
            }

            _file = new Java.IO.File (dir, String.Format ("Picture\t{0}.jpg", Guid.NewGuid ()));
            Intent cameraIntent = new Intent(Android.Provider.MediaStore.ActionImageCapture);  
            cameraIntent.PutExtra (MediaStore.ExtraOutput, Android.Net.Uri.FromFile (_file));
            StartActivityForResult(cameraIntent, SET_NEW_PICTURE); 
        };

我发现这些解决方案对我来说似乎不起作用:

  • 检查应用程序权限(已设置摄像头,外部存储)
  • 确保创建文件夹(断点确实显示它不会进入if(!dir.Exists())
  • 将IntentExtra设置为新文件,而不是直接将Uri.FromFile(文件夹)设置

我现在有点困惑..这可能是非常愚蠢的事情,但我无法理解为什么它不起作用..

帮助将是贬值的:P

修改

这是与我相关的“OnActivityResult”的一部分:

        protected override void OnActivityResult (int requestCode, Result resultCode, Android.Content.Intent data)
    {
        int ResultID = 0;
        base.OnActivityResult (requestCode, resultCode, data);

        if (data != null) {
            if(resultCode == Result.Ok) {
                switch (requestCode) {
                case SET_NEW_PICTURE:
                    var contentUri = Android.Net.Uri.FromFile (_file);
                    PhotoLocation = contentUri.ToString();
                    FindViewById<Button>(Resource.Id.exViewPhoto).Visibility = Android.Views.ViewStates.Visible;
                    break;
                default:
                    break;
                }
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

问题解决了:似乎Android不喜欢文件名中的“\ t”... 不知怎的..这是Monodroid文档fml的一部分。