【问题标题】:Xamarin Android take a photo with an intent without the Retry OKXamarin Android 在没有 Retry OK 的情况下拍摄照片
【发布时间】:2020-02-05 09:18:23
【问题描述】:

我想从 Xamarin Android(不是 Forms)拍摄一张照片并让它拍摄,然后返回照片,跳过屏幕底部的重试和确定链接。

我没有使用任何特殊的库,只是传递了一个如下所示的意图:

https://www.c-sharpcorner.com/article/camera-application-create/

这是我调用相机的代码和返回的代码:

        private void BtnCamera_Click(object sender, System.EventArgs e)
        {
            Intent intent = new Intent(MediaStore.ActionImageCapture);
            StartActivityForResult(intent, 0);
        }

       protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
        {
            base.OnActivityResult(requestCode, resultCode, data);
            Bitmap bitmap = (Bitmap)data.Extras.Get("data");

            AddPicturesToList(bitmap); // This adds the photo to a scrollable list
        }

我在其他地方看到你可以这样做,但 Xamarin 给我一个错误 REQUEST_IMAGE_CAPTURE 在当前上下文中不存在。

        private void BtnCamera_Click(object sender, System.EventArgs e)
        {
            Intent intent = new Intent(MediaStore.ActionImageCapture);
            intent.PutExtra("android.intent.extra.quickCapture", true);
            StartActivityForResult(intent, REQUEST_IMAGE_CAPTURE); // <<<< Not working
        }

这样做有什么问题吗?

【问题讨论】:

    标签: android xamarin camera


    【解决方案1】:

    StartActivityForResult(intent, REQUEST_IMAGE_CAPTURE);

    第二个参数为int类型RequestCode,大于等于0的int,可以根据OnActivityResult中返回的requestCode判断关闭哪个Activity。

    那么在这种情况下,您是否在活动中定义了REQUEST_IMAGE_CAPTURE?

    【讨论】:

    • 感谢您的帮助。不,我没有在我的活动中定义 REQUEST_IMAGE_CAPTURE。从人们使用它的方式来看,我认为这是某种 Android 常量。阅读文档后,我看不出这个参数与(你确定“重试”“确定”)有什么关系。
    • @GaryPg 上面的答案是您无法运行的原因。关于“重试”“确定”,因为您使用Android中依赖设备实际相机应用程序的标准拍摄照片的方式,确定/重试功能是相机应用程序的一部分,我们无权访问它,因为这在 Android“供应商”(三星、LG、索尼等)之间会有所不同。
    • @GaryP 避免这种情况的一种方法是使用 SurfaceView 在您自己的应用程序中拍摄照片,而不是使用相机应用程序。您可以参考 [this(airpair.com/android/android-camera-surface-view-fragment) 但不幸的是,它是用 Java 编写的,但是我认为翻译成 Xamarin/C# 并不太难。]
    • 谢谢。我们目前正在使用表面视图片段,这就是为什么我正在寻找替代品,因为片段已经折旧。我会留下它而不是改变它。
    • 第二个原因是我的客户希望通过捏合进行缩放,而大多数使用表面视图的示例对于 Xamarin 来说都是模糊的。
    猜你喜欢
    • 2013-04-24
    • 2020-04-22
    • 2011-12-31
    • 1970-01-01
    • 1970-01-01
    • 2011-03-30
    • 1970-01-01
    • 1970-01-01
    • 2013-12-08
    相关资源
    最近更新 更多