您的设备似乎不支持相机

时间:2015-04-23 01:11:21

标签: android opencv camera locked

我遇到过一个错误,我猜这个错误在OpenCV应用程序中很常见。当我尝试运行该应用程序时,它表示"您的设备似乎不支持相机(或已被锁定)"。我看过thisthis,我已经做了他们所说的任何事情,比如授予相机权限并重启设备等等。但问题仍然存在。我知道这个问题意味着任何其他应用程序必须使用相机,因此它被锁定。当我使用可能使用相机的相机清除所有应用程序的缓存时,它只能运行一次。在同样的问题之后。解决这个问题的方法是什么?

谢谢。

5 个答案:

答案 0 :(得分:6)

我刚刚遇到与OpenCV for Android相同的问题,并发现转到手机的 设置 - > 应用 (或类似) - > 您的应用 - > 权限 并启用Camera权限似乎可以解决问题。

希望这有帮助。

<强>更新

正如@ F43nd1r在下面的评论中所述,要求用户在应用设置菜单中更新其权限不应该针对您自己的应用。应该按照https://developer.android.com/training/permissions/requesting.html要求用户允许访问摄像机/其他任何内容。

答案 1 :(得分:0)

我实际上在BlueStack中收到了这个错误,但我通过转到任务管理器并结束BlueStack的所有进程来解决它。再次启动BlueStack,它工作正常。如果您在手机上遇到此问题,也可以这样做。只需重新启动手机即可正常使用。

答案 2 :(得分:0)

编辑org.opencv.android.JavaCameraView.java并搜索

Szie frameSize = calculateCameraFrameSize(sizes, new JavaCameraSizeAccessor(), width, height);

替换为关注

Size frameSize;
                if(width>height)
                {
                    frameSize = calculateCameraFrameSize(sizes, new JavaCameraSizeAccessor(), width, height);
                }
                else
                {
                    frameSize = calculateCameraFrameSize(sizes, new JavaCameraSizeAccessor(), height, width);
                }

答案 3 :(得分:0)

相应于Android docs

  

从Android 6.0(API级别23)开始,用户授予权限   应用程序运行时的应用程序,而非安装应用程序时的应用程序。

这意味着在新的Android设备上,您还需要请求运行时权限才能使用相机。

我使用question you mentioned所需的代码发布了答案。

检查出来:https://stackoverflow.com/a/44087946/4398784

希望它有所帮助!

答案 4 :(得分:0)

JavaCameraView.java(适用于Android库的opencv)中更改 143

Size frameSize = calculateCameraFrameSize(sizes, new JavaCameraSizeAccessor(), width, height);

Size frameSize = new Size(width,height);//calculateCameraFrameSize(sizes, new JavaCameraSizeAccessor(), width, height);