Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.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
Java 您的设备似乎不支持摄像头(或已锁定)_Java_Android_Opencv_Android Camera - Fatal编程技术网

Java 您的设备似乎不支持摄像头(或已锁定)

Java 您的设备似乎不支持摄像头(或已锁定),java,android,opencv,android-camera,Java,Android,Opencv,Android Camera,Android opencv示例和教程运行良好,突然有一天,我得到了所有这些: “您的设备似乎不支持摄像头(或已锁定)。应用程序将被关闭” 请帮帮我,我怎样才能修好它 我重新安装了opencv,再次导入并制作了新的模拟器,但问题仍然存在。检查AndroidManifest.xml中的摄像头权限 <uses-permission android:name="android.permission.CAMERA"/> <uses-feature android:name="

Android opencv
示例和教程运行良好,突然有一天,我得到了所有这些:
“您的设备似乎不支持摄像头(或已锁定)。应用程序将被关闭”

请帮帮我,我怎样才能修好它


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

检查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"/>


它对我有用。

我刚刚遇到了这个问题,我通过停止使用相机的其他应用程序解决了这个问题。我以前的一些教程仍然在后台运行。

这些示例应该可以工作,因为它们使用的是JavaCamera。当我尝试使用本地版本时,我遇到了这个问题。似乎本地版本不适用于任何手机。看


我必须补充一点,在某些设备中,openCV本机摄像头根本不工作。

转到设备设置->应用->应用->权限->打开摄像头权限

为我工作。

来自:

从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);
        }
    }
}
您还可以处理请求-响应,如中所述


希望有帮助

就我而言,问题是
我的应用程序在另一个活动中使用安卓摄像头

另一项活动是在销毁(锁定)后使用
相机
时不释放

在我释放另一个活动上的
摄像机
后,此对话框将不再显示

所以一般来说要解决这个问题

  • 检查摄像机权限
  • 检查摄像头是否未锁定(在任何其他活动中使用后将其释放)

  • 关闭设备并重新引导。再次尝试重新安装opencv。看看这个:我遇到了同样的问题,它通过以下方法解决了。请看,我在emulator上运行时遇到了类似的问题,解决方案是:转到emulator,
    设置->应用程序->我的应用程序->权限,然后启用“摄像头”。我发现它被请求但没有启用。这是我必须做的。不确定为什么不授予权限。@AutonomousApps,因为您使用的API/Build Tools>23对我有效,但在Geraldo的回答中向用户请求权限应该更好。若要在运行时而不是手动解决此问题,请在此处查看我的回答:。有关发布的相关问题