Android QR Code Scanner programmieren?
Servus zusammen,
ich habe ein kleines, (für mich) triviales Projekt vor.
Für ein kleines Fest (200 Personen) habe ich Eintritskarten erstellen, welche mit einem QR-Code fälschungssicher gestaltet werden sollen. Diese sollen anhand einer Android-App validiert werden.
Kurzfassung:
- Jede Eintrittskarte hat einen separaten QR-Code
- Jeder QR-Code enthält eine Prüfziffer, bestehend aus 4 Ziffern (Zahlen und Buchstaben)
- Die Prüfziffern sind Nummeriert (zB.: 001=AF65, 002=6s5f, 003=...,...)
- Die Prüfziffern sind inkl. Nummerierung in einer Excel gespeichert
- Der QR-Code beinhaltet somit eine .txt Datei
Nun meine Idee:
- App entwickeln, welche einen QR Code Scanner beinhaltet
- die App soll den inhalt des QR-Codes anhand der hinterlegten Excel-Datei wie folgt prüfen:
- stimmt die Prüfziffer mit der Nummerrierung überein, und
- wurde das Ticket doppelt abgescannt
Nun meine Frage: Lässt sich mein Vorhaben relativ trivial umsetzten; Kann ich zb. den Code für den QR-Scanner irgendwo her kopieren?
Ich würde mich sehr gerne in Kotlin und Android Studio einlesen wollen (besitzte grundlegene Erfahrung in Python, C++ und Java); Kann mir da jemand ein Buch empfehlen?
1 Antwort
Ja, wenn du schon ein bisschen Erfahrung in der nativen Android App Entwicklung hast, dann kannst du dieses Vorhaben innerhalb von 1 bis 2 Tagen umsetzen. Von der Funktionalität her, Design wird probably dann aussehen wie... ;)
Um QR Codes zu scannen bzw. zu erstellen gibts auch viele Bibliotheken, die du einfach ins Projekt einbinden und verwenden kannst.
Beispiele von Bibliotheken für QR Codes sind ZXING oder QRGen und für Excel bietet sich Apache POI HSSF an.
Edit: Ebenfalls ist das Internet voll von Anwendungsbeispielen und Tutorials rund um das Thema QR Codes.
Die Demo App kann zwei Bibliotheken verwenden, um QR Codes zu decoden.
Bibliotheken: ZXING und ML Kit
Decoding mit ZXING befindet sich in der Methode analyze() ab Zeile 48.
Decoding mit ML Kit befindet sich in der Methode analyze() ab Zeile 24.
Um dort die Codes zu zählen bzw. mit dem Code ein bisschen rumzuspielen, kannst du in der nähe der LOG Methode einen Zähler implementieren.
Einfach einen Statischen Zähler deklarieren und anschließend im LOG anhängen und nach der entsprechenden Decode Methode um 1 erhöhen.
Irgendwie ist Kotlin nix für mich... Also bei ZXING einfach nach "listener.onScanned(rawResult.text)" den counter einbringen? Wie kann ich den denn rein bringen? einfach counter = counter++ ?^^
Bzw. wie kann ich dann die Var counter in mein textfeld bringen: siehe https://ibb.co/2vfxghc
Ja, da muss man sich reinfuchsen vor allem bei Android Development muss man die ganzen Komponenten verstehen bzw. wie diese Zusammenhängen und Kommunizieren. Zumindest aus meiner Erfahrung. Hab da jetzt auch nur eine kleine popelige Notizzettel App mal zum Ausprobieren gemacht.
Würde es noch vor dem LOG machen.
Oben bei den Variablen einen statischen Zähler hinzufügen.
private static int COUNTER = 0;
Vorm LOG dann
counter++
Und im Lock noch folgendes hinzufügen.
+ "Counter:" + COUNTER;
Danke dir schonmal!
Ich habe jetzt den Scanner als Vorlage genommen: https://github.com/maulikhirani/scannerX
Leider check ich den Code nicht so ganz bzw. ich finde die function nicht, wenn der Text des Codes ausgelesen wird. Kannst du mir da vielleicht weiterhelfen?
vorerst würde es mir reichen, wenn ich einen couter darin implementieren könnte, der einfach nur zählt wie viele Codes ich abgescannt habe.