Ich versuche, Camera2 API in meiner App zu verwenden, obwohl ich Laufzeitkamera-Berechtigung mit dem folgenden Code überprüfe.Android Kamera Laufzeitgenehmigung Fehler?
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) {
cameraManager.openCamera(cameraId, stateCallBack, null);
} else {
if (shouldShowRequestPermissionRationale(Manifest.permission.CAMERA))
Toast.makeText(getApplicationContext(), "PLease allow the app to use camera app", Toast.LENGTH_LONG).show();
}
ActivityCompat.requestPermissions(CaptureImageActivity.this,new String[]{"android.manifest.permissin.CAMERA"}, CAMERA_REQUEST_RESULT);
} else {
cameraManager.openCamera(cameraId, stateCallBack, null);
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permission, int[] grantResult) {
switch (requestCode) {
case CAMERA_REQUEST_RESULT:
if (grantResult[0] == PackageManager.PERMISSION_GRANTED) {
try {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
//this method is created because of openCamera method below i don't understand why this method is created
return;
}
cameraManager.openCamera(cameraId, stateCallBack, null);
} catch (CameraAccessException e) {
e.printStackTrace();
}
}
if (grantResult[0] != PackageManager.PERMISSION_GRANTED)
Toast.makeText(getApplicationContext(), "camera is not granted", Toast.LENGTH_LONG).show();
break;
default:
super.onRequestPermissionsResult(requestCode, permission, grantResult);
break;
}
}
Ich habe auch eine Berechtigung in der Datei AndroidManifest.xml enthalten.
Aber wenn ich meine App ausführen, wird der Erlaubnisdialog nicht angezeigt, aber Kamera wird nicht gewährt, Toast wird angezeigt.
1) Warum wird der Berechtigungsdialog nicht angezeigt?
2) Auch dort gibt es keinen Dialog, der zeigt, dass die Kamera kein Toast zeigt. Ich habe viel gesucht, aber nichts hilft!
Mein Code, um Ihren Code ähnlich ist, aber das funktioniert nicht. – Yirga