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

Posted

技术标签:

【中文标题】您的设备似乎不支持摄像头(或已锁定)【英文标题】:It seems that your device does not support camera(or it is locked) 【发布时间】:2014-01-07 02:47:54 【问题描述】:

android opencv 示例和教程运行良好,突然有一天我得到了所有这些:"It seems that your device does not support camera (or it is locked). The application will be closed" 请帮忙,我该如何解决?

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

【问题讨论】:

关闭设备并重新启动。再次尝试重新安装 opencv。 看看这个:answers.opencv.org/question/1574/camera-not-working 我也遇到过同样的问题,通过以下方式解决了。见***.com/a/42661642/5850039 【参考方案1】:

转到您的设备设置->应用程序->您的应用程序->权限->打开相机权限..

为我工作..

【讨论】:

这是我必须做的。不知道为什么没有授予权限。 @AutonomousApps,因为您使用的是 API/构建工具 > 23 为我工作,但像 Geraldo 的回答那样向用户请求权限应该会更好。 要在运行时而不是手动解决它,请在此处查看我的答案:***.com/a/44087946/4398784。【参考方案2】:

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

它对我有用..

【讨论】:

【参考方案3】:

来自Android Docs:

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

这意味着在Android 23或更高版本上,除了manifest,你还需要在runtime请求权限。在这种情况下,相机访问。

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

// 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 中的说明处理请求响应。

希望对你有帮助!

【讨论】:

【参考方案4】:

刚刚遇到这个问题,我通过杀死任何其他使用相机的应用程序来解决它。我之前的一些教程仍在后台运行。

【讨论】:

【参考方案5】:

就我而言,问题是 我的应用程序在另一个活动中使用Android Camera另一个活动 在 Destroyed 上使用后没有释放 Camera(锁定它) 在我在另一个活动上释放Camera 后,此对话框将不再显示。

所以一般要解决这个问题

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

【讨论】:

发布相关问题***.com/questions/11495842/…【参考方案6】:

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

我必须补充一点,在某些设备中,openCV 原生相机根本不起作用,bug 2359。

【讨论】:

我在模拟器上运行时遇到了类似的问题,解决方案是:转到模拟器,Setting-&gt;Apps-&gt;my_app-&gt;Permissions,然后启用“相机”。我发现它被请求但未启用。

以上是关于您的设备似乎不支持摄像头(或已锁定)的主要内容,如果未能解决你的问题,请参考以下文章

海康威视摄像头密码忘了,怎么设置

当“vagrant up”时,它显示“您的机器似乎不支持 NFS”(Mac OS)

需要免费的 ssl 证书,因为 google chrome 不支持没有 https 的网络摄像头

NDK或OpenCV相机崩溃这个应用程序?为什么?

Xcode 8 您的开发团队,不支持 iCloud 功能

Tensorflow Lite 示例:Wifi 摄像头支持? [关闭]