One code to rule them all ...

Ich bin heute auf Twitter auf einen interessanten Blogpost von Nele Hirsch gestoßen, bei dem erklärt wird, wie sich «Audio QR-Codes» erzeugen lassen. Der Links dazu ist hier. Gemeint sind damit QR-Codes, die beim Einscannen eine Audioquelle abspielen. Die Audiodatei muss natürlich irgendwo liegen (die Datenkapazität eines QR-Codes reicht nicht aus, um darin direkt die Daten unterzubringen).

Es gibt allerdings noch immer einige «urbane Mythen» im Bereich QR-Code, die sich vor allem im digitalen Lehrerzimmer verbreiten (QR-Codes haben im deutschsprachigen Raum die größte Verbreitung im Schulbereich). Auch Nele schreibt in ihrem Blogpost:

Denn in klassischen QR-Code-Generatoren steht in der Regel nur Text oder URL zur Auswahl.

Es gibt keine Typen von QR-Codes. Ein QR-Code enthält als Nutzlast eine Zeichenkette. Der QR-Code ist immer einfach nur ein QR-Code, also eine kodierte Darstellug einer Kette von Bytes. Die «Typen» kommen einfach daher, dass manche Generatoren für QR-Codes verschiedene Eingabemasken anbieten; denn was mit dem Inhalt eines QR-Codes passiert, definiert einzig uns allen das lesende Softwaresystem (in fast allen Fällen also das Smartphone).

Aber es passieren unterschiedliche Dinge???

Natürlich, aber diese unterschiedliche Dinge passieren, weil einfach unterschiedlicher Text in den QR-Codes enthalten ist. Sehen wie uns mal an, was die üblichen angeblichen «Typen» für QR-Codes sind:

  • URL – öffnet eine URL (normalerweise eine Web-Adresse)
  • Text – zeigt einfach den Text an
  • vCard – eine digitale Visitenkarte
  • SMS – löst den Versand einer SMS auf dem Smartphone aus
  • Call – löst einen Anruf auf dem Smartphone aus
  • Location – eine geografische Position
  • Event – ein Kalendereintrag für ein Ereignis
  • Mail – eine Mail an eine Empfängeradresse
  • WiFi – eine Anmeldung an einem Drahtlos-Netzwerk

Und all das unterscheidet die lesende Software? Ja, das tut sie, weil es für die Verwendungszwecke einfach ein bestimmtes Format gibt, dass die QR-Lesesoftware erkennt (bei iOS z.B. die Kamera-Software). Sie kennen das aus Ihrer eigenen Erfahrung: wenn Sie etwas mit http:// oder mit https:// beginnen, dann ist es eine Web-Adresse. Ein Text, der mit SMSTO: beginnt, definiert eine SMS und so weiter. Die oben angegebenen Verwwendungszwecke beherrschen fast alle vorhandenen QR-Code Leseprogramme. Weitere Einsatzzwecke sind möglich, aber nicht standardisiert bzw. weit verbreitet.

Je nach Beginn definiert dann der weitere Inhalt, was genau passiert. Um beim Beispiel des Audio-QR zu bleiben: da steckt einfach eine URL drin und diese URL endet mit einer Audiodatei (z.B. eine .mp3-Datei). Im Endeffekt passiert also das Gleiche, als würden Sie im Browser die URL eingeben.

Sie können das ganz einfach testen: hier ist die URL zu einer Beispiel-Datei mit Audio:

https://file-examples.com/wp-content/uploads/2017/11/file_example_MP3_700KB.mp3

Und hier ist der «Audio QR-Code» dazu:

Beispiel MP3

Nebenbei: wenn Sie mal eine Beispieldatei benötigen, ist https://file-examples.com/ eine gute Adresse.

Beides sollte auf Ihrem Smartphone dazu führen, dass Sie Musik hören. Wie oben geschrieben, ein QR-Code ist nur eine «Abkürzung» des Eintippens, sonst nichts Magisches. Wenn Sie wirklich tiefer in das Thema eintauchen und wissen wollen, was diese Vierecke im Code bedeuten und wie ein QR-Code aufgebaut ist, dann sollte Sie diesen Blogpost von mir lesen.

Das ganze Geheimnis …

Sie können also immer alle QR-Codes mit jedem Generator erzeugen, der einfach nur Text kann. Wichtig ist eben nur, welcher Text da drin steht. Sehen wir uns die Verwendungszwecke von oben einfach mal an …

Text

Am wengisten geheimnisvoll von allen, das steht einfach Text, z.B.
Hallo, da draussen, ich bin die Nutzlast eines QR-Codes.

URL

Alles, was als URL erkannt wird, also z.B. http:// odr https:// oder auch andere wie ftp:// etc.

vCard

Für digitale Visitenkarten gibt es einen Standard: vCard. Mehr Info gibt es als Einstieg z.B. in der Wikipedia. Hier ein Beispiel, wie so ein Eintrag aussieht. Die Lesesoftware für QR-Codes erkennt am BEGIN:VCARD, dass es sich um eine Visitenkarte handelt, nicht an einem vorher festgelegten «Typ».

BEGIN:VCARD
VERSION:2.1
FN:Franz Testhuber
N:Testhuber;Franz
TITLE:Professor
TEL;CELL:+1 555 1234 56
EMAIL;HOME;INTERNET:ich@du.da
URL:https://exmaple.com/zeug.html
ADR:;;Irgendwoweg;Berlin;;12345;Germany
END:VCARD

SMS

Die Nutzlast hat die Form: SMSTO:<nummer>:<text>, zum Beispiel SMSTO:4915112345678:Hurga

Call (Anruf)

Die Nutzlast hat die Form tel:<nummer>

Geo-Location

Hier hat die Nutzlast die Form geo:<lat>,<long>,<alt>, also Breite, Länge, Höhe über Grund, z.B. geo:40.71872,-73.98905,100

Hier gibt es auch Unterschiede, manche Encoder erzeugen eine QR-Code mit dem Inhalt: geo:48,5,12,0,400, also Grad und Minuten mit Komma getrennt. Das sind dann die Fälle, wo manche QR-Code Reader eine Karte anzeigen und manche nicht. Eine Diskussion findet sich beispielsweise hier.

Event

Wie für digitale Visitenkarten gibt es auch für Ereignisse einen Standard: VEVENT, mehr dazu in der Wikipedia. Ein (sehr einfacher) Beispieleintrag:

BEGIN:VEVENT
SUMMARY:Biergarten
DTSTART:20191015T220000Z
DTEND:20191015T110000Z
END:VEVENT

eMail

Hier muss der Empfänger, der Betreff und der Mailtext angegeben werden, die Nutzlast hat eine Form wie die folgende Beispiel-Mail:

MATMSG:TO:ich@du.da;SUB:Betreff;BODY:Hallo da draussen;;

WiFI-Zugang

Hier enthält die Nutzlast den Authentifizierungs-Typ, die SSID des Netzes und das Kennwort. Auch hier ein Beispiel-Eintrag:

WIFI:T:WPA;S:mynetz;P:geheim;;

Aber die Code sehen anders aus!

Ich habe noch eine Überraschung: zwei QR-Codes mit dem gleichen Inhalt müssen nicht gleich aussehen! Unten sehen Sie zwei QR-Codes, die nicht identisch sind. Wenn Sie diese scannen (ich empfehle auf dem PC oder dem Tablet den https://zxing.org/w/decode.jspx – dort sehen Sie das Ergebnis des Scans sehr ausführlich), erhalten Sie zweimal die gleiche Nutzlast.

Zweimal die gleiche Nutzlast

Das liegt daran, dass ein Programm verschiedene Möglichkeiten hat, diese Information zu kodieren bzw. es Unterschiede je nach Implementierung geben kann. Wenn Sie mehr wissen wollen, empfehle ich auch hier diesen Blogpost von mir.

Fazit

Lassen Sie sich also nicht einreden, dass Sie einen bestimmten «Typ» eines QR-Codes benötigen oder einen bestimmten Generator für QR-Codes. Es kommt einzig und allein auf das Format der Nutzlast an und die Anzahl und Implementierung der Formate, welche die Software in Ihrem Smartphone kennt. Bei den seltener verwendeteten Formaten (z.B. Geo-Location) kann es durchaus vorkommen, dass sich verschiedene Implementierungen nicht verstehen, dann ist die Methode Versuch und Irrtum angesagt oder Sie nutzen ein Tool wie https://zxing.org/w/decode.jspx, mit dem Sie eine übersichtliche Darstellung erhalten, was an Inhalt im QR-Cod erkannt wurde:

Das Ergebnis einer Erkennung


Kommentare

2019-10-14 von faa6b64e32380483632f1afdb5eabac0bec71a83d234119535f661ff14005acd:

Wieder mal ein ganz toller Artikel, Armin! Vielen lieben Dank. Ich werde die einzelnen Möglichkeiten bei Zeiten mal im Unterricht einsetzen. Liebe Grüße, Herr Mess 🤗

Share Kommentieren
X

Ich habe einen Kommentar zum Artikel

Sie können die Kommentarfunktion ohne die Speicherung personenbezogener Daten nutzen. Schreiben Sie Ihren Kommentar und klicken Sie auf "Abschicken", der Versand erfolgt per Mail von meinem Auftritt aus an mich zur Prüfung. Dieser Versand und die Übertragung Ihres Kommentars ist zur Erfüllung der von Ihnen mit dem Klick auf "Abschicken" ersichtlichen Absicht technisch notwendig und bedarf keiner weiteren Einwilligung.

Wichtiger Hinweis: Sie haben keinen Anspruch auf die Veröffentlichung Ihres Kommentars. Jeder hier eingegebene Kommentar wird zuerst geprüft. Ich behalte mir die Entscheidung vor, welche Kommentare ich als Ergänzung an den Artikel anfüge.