Я пытаюсь переместить очень простое приложение 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>
У кого-нибудь был успешный доступ к камере Android с помощью cv :: VideoCapture в C ++? Ксамарин имеет какое-либо отношение к этому?
но приложение строится для Android 4.4
Ваши версии SDK манифеста должны выглядеть следующим образом:
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="19" />
В противном случае без targetSdkVersion
установить и запустить на устройстве API 23+ вам потребуется запросить разрешения камеры во время выполнения.
Других решений пока нет …