Ich verwende Google EasyPermissions-Bibliothek. In meiner App habe ich zwei Tasten, eine zum Aufnehmen von Videos und eine zum Aufnehmen von Bildern. Da beide Kameraberechtigungen benötigen, sind sie beide mit @AfterPermissionGranted
gekennzeichnet.Beide Methoden werden nach erteilten Berechtigungen ausgeführt.
meine Methode So Video aufnehmen sieht wie folgt aus:
@Override
@AfterPermissionGranted(RC_CAMERA_PERM)
public void openCameraToRecordVideo() {
if (EasyPermissions.hasPermissions(this, Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
// Code here
}
Und in ähnlicher Weise zur Aufnahme von Bildern:
@Override
@AfterPermissionGranted(RC_CAMERA_PERM)
public void openCameraToCaptureImage() {
if (EasyPermissions.hasPermissions(this, Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
// Code here
}
Sie beide mit Berechtigungen kommentiert werden, da ich nicht weiß, was ein Benutzer wird klicke zuerst.
Was passiert ist, wenn Benutzer auf eine Schaltfläche klickt und die Berechtigungen akzeptiert, dann beide Methoden nacheinander ausgeführt werden. Das ist offensichtlich nicht das Verhalten, das ich will.
Ich würde wirklich jede Hilfe schätzen, wie man mit dieser Situation umgeht. Danke.
Das ist ziemlich viel, was ich schließlich getan habe. Ich habe zwei boolesche Felder hinzugefügt: 'recordVideo' und' captureImage' und basierend auf welcher Schaltfläche geklickt wurde, setze ich das entsprechende Feld auf true. Dann, wenn 'openCamera()' läuft, überprüfe ich welches Feld wahr ist und starte die entsprechende openCameraXXX Funktion. Danke für deine Antwort. – Mes