您的设备似乎不支持摄像头(或已锁定)
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->Apps->my_app->Permissions
,然后启用“相机”。我发现它被请求但未启用。以上是关于您的设备似乎不支持摄像头(或已锁定)的主要内容,如果未能解决你的问题,请参考以下文章
当“vagrant up”时,它显示“您的机器似乎不支持 NFS”(Mac OS)