我正在尝试将一个非常简单的OpenCV应用程序移动到android。代码尝试从C ++ .so库访问相机,该库与使用C#和Xamarin的主应用程序链接,我怀疑这与我的问题有关。我的C ++代码只是尝试使用cv :: VideoCapture来访问摄像机,如下所示:
cv::VideoCapture cap(0); //default camera
if(!cap.isOpened())
{
LOGE("No camera detected on this system\n");
}
尽管我在AndroidManifest.xml中指定了如下权限,但总是失败:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.XamarinARapp">
<uses-sdk android:minSdkVersion="15" />
<application android:label="XamarinARapp.Android">
</application>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
<uses-feature android:name="android.hardware.camera.front" android:required="false"/>
<uses-feature android:name="android.hardware.camera.front.autofocus" android:required="false"/>
</manifest>
有没有人用C ++中的cv :: VideoCapture成功访问Android相机? Xamarin与它有什么关系吗?
答案 0 :(得分:2)
但该应用程序正在为Android 4.4
构建
您的清单SDK版本应如下所示:
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="19" />
否则,如果没有targetSdkVersion
设置并在API 23+设备上运行,您将需要请求运行时摄像头权限。