Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 安卓摄像头应用程序没有';不归_C#_Android_Xamarin - Fatal编程技术网

C# 安卓摄像头应用程序没有';不归

C# 安卓摄像头应用程序没有';不归,c#,android,xamarin,C#,Android,Xamarin,我试图用xamarin在imageview中显示图像,但当我按下相机中的“接受”按钮时,它不会返回到我的主要活动 这是密码 protected override void OnCreate (Bundle bundle) { base.OnCreate (bundle); SetContentView (Resource.Layout.AddPurchase); // Create your application here ConfigLayout ();

我试图用xamarin在imageview中显示图像,但当我按下相机中的“接受”按钮时,它不会返回到我的主要活动

这是密码

protected override void OnCreate (Bundle bundle)
{
    base.OnCreate (bundle);
    SetContentView (Resource.Layout.AddPurchase);
    // Create your application here

    ConfigLayout ();
    if (IsThereAnAppToTakePictures ()) 
    {           
        CreateDirectoryForPictures ();
        Button cameraButton = FindViewById<Button> (Resource.Id.buttonTakePicture);
        _imageView = FindViewById<ImageView> (Resource.Id.imageView);
        cameraButton.Click += TakeAPicture;
    }
}

protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
    base.OnActivityResult(requestCode, resultCode, data);
    Intent mediaScanIntent = new Intent (Intent.ActionMediaScannerScanFile);
                var contentUri = Uri.FromFile (_file);
                mediaScanIntent.SetData (contentUri);
                SendBroadcast (mediaScanIntent);
                int height = _imageView.Height;
                int width = _imageView.Width;

                using (Bitmap bitmap = _file.Path.LoadAndResizeBitmap(width, height)) {
                    _imageView.SetImageBitmap (bitmap);
                }
}
bool IsThereAnAppToTakePictures ()
{
        Intent intent = new Intent (MediaStore.ActionImageCapture);
        IList<ResolveInfo> availableActivities = PackageManager.QueryIntentActivities (intent, PackageInfoFlags.MatchDefaultOnly);
        return availableActivities != null && availableActivities.Count > 0;
    }

void CreateDirectoryForPictures ()
    {
        _dir = new File (Environment.GetExternalStoragePublicDirectory (Environment.DirectoryPictures), "Boekhoudservice");
        if(!_dir.Exists ())
            _dir.Mkdirs();
    }

private void TakeAPicture(object sender, System.EventArgs eventArgs)
    {
        if (_imageView.Drawable != null) {
            _imageView.SetImageResource (0);
        }
        Intent intent = new Intent (MediaStore.ActionImageCapture);

        _file = new Java.IO.File(_dir, String.Format ("uitgave_{0}.jpg", System.DateTime.Now.ToString ("d")));
        intent.PutExtra (MediaStore.ExtraOutput, Uri.FromFile(_file));

        StartActivityForResult (intent, RequestCodeConstants.CameraIntent);

    }
protectedoverride void OnCreate(捆绑包)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.AddPurchase);
//在此处创建应用程序
ConfigLayout();
如果(是否在此处拍摄照片())
{           
CreateDirectoryForPictures();
按钮cameraButton=FindViewById(Resource.Id.buttonTakePicture);
_imageView=findviewbyd(Resource.Id.imageView);
cameraButton.Click+=TakeAPicture;
}
}
受保护的覆盖void OnActivityResult(int请求代码、结果代码、意图数据)
{
base.OnActivityResult(请求代码、结果代码、数据);
Intent mediaScanIntent=新的Intent(Intent.ActionMediaScannerScanFile);
var contentUri=Uri.FromFile(_文件);
mediaScanIntent.SetData(contentUri);
SendBroadcast(mediaScanIntent);
int height=_imageView.height;
int width=_imageView.width;
使用(位图位图=_file.Path.LoadAndResizeBitmap(宽度、高度)){
_imageView.SetImageBitmap(位图);
}
}
bool Istherea拍摄照片()
{
意向意向=新意向(MediaStore.ActionImageCapture);
IList availableActivities=PackageManager.QueryInputActivities(intent,PackageInfoFlags.MatchDefaultOnly);
return availableActivities!=null&&availableActivities.Count>0;
}
作废CreateDirectoryForPictures()
{
_dir=新文件(Environment.GetExternalStoragePublicDirectory(Environment.DirectoryPictures),“Boekhoudservice”);
如果(!\u dir.Exists())
_dir.Mkdirs();
}
私有void TakeAPicture(对象发送方,System.EventArgs EventArgs)
{
如果(_imageView.Drawable!=null){
_imageView.SetImageResource(0);
}
意向意向=新意向(MediaStore.ActionImageCapture);
_file=new Java.IO.file(_dir,String.Format(“uit_{0}.jpg”,System.DateTime.Now.ToString(“d”));
intent.PutExtra(MediaStore.ExtraOutput,Uri.FromFile(_file));
StartActivityForResult(intent、RequestCodeConstants.CameraIntent);
}
问题似乎在于我的目录创建方法,在检查目录是否存在时,它返回true,而如果我自己检查,它不会显示在我的文件资源管理器中

这两个权限都在我的AndroidManifest中

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />


您也可以从Manifest.xml中添加活动声明吗?因为我正在使用Xamarin执行此操作,所以我的清单中没有任何活动声明,所有活动都使用类名上方的
[activity(Label=“ActivityName”)]
属性注册