_Android opencv
_サンプルとチュートリアルは問題なく実行されていましたが、ある日突然、これらすべての問題が発生しました。"It seems that your device does not support camera (or it is locked). The application will be closed"
助けてください、どうすれば修正できますか?
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"/>
それは私のために働いています。
Android Docs から:
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);
}
}
}
docs で説明されているように、要求応答を処理することもできます。
それがお役に立てば幸いです!
この問題が発生したので、カメラを使用していた他のアプリを強制終了しました。以前のチュートリアルをバックグラウンドで実行していました。
私の場合、問題は
アプリケーションでの使用Android Camera
in別のアクティビティ
そして別のアクティビティDestroyed(lock it)で使用した後、Camera
を解放しませんでした)
そして、別のアクティビティでCamera
を解放した後、このダイアログは再び表示されません。
だから一般的にこの問題を修正するには