QR Code Scanner (Kamera) funktioniert nicht #13
Labels
No labels
blocked
claude
in-progress
needs-review
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
aiways/AiwaysApp#13
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Im Menü unter "Mehr", Fahrzeug hinzufügen, Scannen sehe ich nur den angehängten Screenshot (Kamera lädt nicht). Berechtigungen habe ich erteilt (bei Benutzung der App).
Außerdem: Der Menü-Punkt sollte meiner Meinung nach unter "Mehr>Profil>Fahrzeuge" erscheinen.
Und: Wenn man die App frisch installiert und noch keinen Benutzerkonto erstellt hat, wäre man in einer Sackgasse. Auf dem Login-Screen sollte es also auch möglich sein, mit einem Fahrzeug zu starten.
Alle drei Punkte sind drin — Release
v1.0.55, CI + Deploy grün (analyze/gate/release/deploy-web), Web live unter http://192.168.1.85/, APKs hängen am Release.1. Der schwarze Scanner
Das weiße Ausrufezeichen auf dem Screenshot ist das Default-Fehlerbild von
mobile_scanner— die Kamera hat also gar nicht erst gestartet, und die Lib hat den Grund für sich behalten. Zwei Sachen dagegen:Die wahrscheinliche Ursache: wir hingen auf
mobile_scanner 5.2.3. Das Paket baut auf CameraX 1.3.3 / compileSdk 34 — mit unseremtargetSdk 36startet die Vorschau auf aktuellen Androids nicht mehr zuverlässig. Jetzt^7.4.0(CameraX 1.6.1, compileSdk 36). Genau dein Symptom, Freigabe erteilt und trotzdem schwarz, passt zu diesem Bruch.Und, falls es trotzdem klemmt: der Scanner hat jetzt ein eigenes Fehlerbild statt des Ausrufezeichens. Es sagt im Klartext, was schiefging (Freigabe fehlt / keine nutzbare Kamera / sonst der echte Fehlercode), und bietet „Erneut versuchen" — das setzt Controller und Kamera-Session komplett neu auf, was nötig ist, wenn die Freigabe erst im Dialog erteilt wurde und die Plattform-Session noch am abgelehnten Zustand hängt. Dazu „Stattdessen Text einfügen" als Ausweg, ein Platzhalter während des Starts und ein türkiser Sucher-Rahmen.
Am Gerät testen kann ich das nicht — wenn es weiter nicht geht, schick mir bitte den Text, der jetzt auf dem Fehlerbild steht. Damit ist es eindeutig statt geraten.
2. Menü-Punkt an die richtige Stelle
„Fahrzeug hinzufügen" ist aus Mehr raus und sitzt unter Mehr › Profil › Fahrzeuge. „Fahrzeuge" war bisher nur eine Zeile mit einer Zahl — jetzt ist es eine echte Unterseite: die Fahrzeuge des Kontos, das aktive per Tipp auswählbar, Pull-to-refresh, und unten der Einstieg ins Provisionieren. Ein Regressionstest hält fest, dass der Punkt in „Mehr" nicht wieder auftaucht.
3. Keine Sackgasse ohne Konto
Auf dem Login-Screen steht jetzt „Mit Fahrzeug starten". Der Weg dahinter: Head-Unit-QR scannen → Backend-Adresse kommt aus dem QR (das war ja der eigentliche Knoten: ohne Konto kennt die App das Backend nicht) → App fragt
/auth/configund zeigt je nachallowRegistrationentweder Anmelden oder die Umschaltung „Konto anlegen" → danach direkt weiter ins „Fahrzeug hinzufügen", mit dem schon gescannten QR, also ohne zweites Scannen.Zwei Annahmen, die ich dabei getroffen habe (sag Bescheid, wenn anders gewollt):
/auth/configaktuellallowRegistration: false(2 Konten). Der Setup-Weg funktioniert trotzdem — er sagt dann ehrlich „Konten legt hier ein Admin an" und bietet nur Anmelden. Der Konto-anlegen-Zweig ist für ein frisch aufgesetztes Backend gedacht und schaltet sich bei leerem Backend von selbst vor.Verifikation
flutter analyzesauber, 118 Tests grün (4 neue: Smoke für die drei neuen Screens, plus die beiden Regressionstests zu Punkt 2 und 3),flutter build webok, Android-Debug-APK baut lokal mit mobile_scanner 7.4.0. Nicht verifiziert ist die Kamera auf echter Hardware — das ist der Punkt, an dem ich Deine Rückmeldung brauche.Kleinigkeit am Rande:
android/.kotlin/(Session-Cache von AGP 9) ist in die.gitignoregewandert, das war reiner Build-Müll im Status.