您的设备似乎不支持相机(或已锁定)

时间:2013-12-18 19:05:40

标签: android opencv android-camera

android opencv示例和教程运行良好,突然有一天我得到了所有这些“看来你的设备不支持相机(或它被锁定)。应用程序将关闭”请帮助如何修复< / p>

我重新安装了opencv并再次导入并制作了新的模拟器,但问题仍然存在

6 个答案:

答案 0 :(得分:32)

转到您的设备设置 - &gt;应用 - &gt;您的应用 - &gt;权限 - &gt;打开相机许可..

为我工作..

答案 1 :(得分:19)

检查AndroidManifest.xml中的相机权限。

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

    <uses-feature android:name="android.hardware.camera"/>
    <uses-feature android:name="android.hardware.camera.autofocus"/>
    <uses-feature android:name="android.hardware.camera.front"/>
    <uses-feature android:name="android.hardware.camera.front.autofocus"/>

它为我工作..

答案 2 :(得分:10)

来自Android Docs

  

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

这意味着在Android 23或更高版本上,除了清单之外,您还需要在运行时请求权限。在这种情况下,摄像头访问。

为此,您可以使用以下代码:

// First check android version 
if (MyVersion > Build.VERSION_CODES.LOLLIPOP_MR1) {
//Check if permission is already granted
//thisActivity is your activity. (e.g.: MainActivity.this)
    if (ContextCompat.checkSelfPermission(thisActivity,
                    Manifest.permission.CAMERA)
            != PackageManager.PERMISSION_GRANTED) {

        // Give first an explanation, if needed.
        if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
                Manifest.permission.CAMERA)) {

            // Show an explanation to the user *asynchronously* -- don't block
            // this thread waiting for the user's response! After the user
            // sees the explanation, try again to request the permission.

        } else {

            // No explanation needed, we can request the permission.

            ActivityCompat.requestPermissions(thisActivity,
                    new String[]{Manifest.permission.CAMERA},
                    1);
        }
    }
}

您还可以按照docs

中的说明处理请求响应

希望它有所帮助!

答案 3 :(得分:2)

刚出现这个问题,我通过杀死使用相机的任何其他应用程序解决了这个问题。我之前的教程仍然在后台运行。

答案 4 :(得分:0)

样本应该有效,因为他们使用的是JavaCamera。当我尝试使用Native语言时,我遇到了这个问题。这似乎是原生的一个不适用于错误的手机。见this

我必须在某些设备中添加,openCV原生相机根本不起作用bug 2359

答案 5 :(得分:0)

就我而言,问题是
我的应用在另一项活动中使用Android Camera
并且另一项活动 在被销毁(锁定)后未释放Camera
在释放另一个活动上的Camera之后,该对话框将不再显示。

因此通常可以解决此问题

  1. 检查CAMERA权限
  2. 检查CAMERA是否未锁定(通过在其他任何活动中使用后将其释放)