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的回答中向用户请求权限应该更好。若要在运行时而不是手动解决此问题,请在此处查看我的回答:。有关发布的相关问题