Motivation

Der ADFC-Stormarn e.V. verwendet Klebeetiketten zur Codierung von Fahrrädern.

EIN-Code Etikett

Auf diesen Etiketten ist ein EIN-Code (Eigentümer-Identifizierungs-Nummer) aufgedruckt, die es der Polizei, den Fundbüros und dem ADFC erlauben, den Eigentümer eines Fahrrads zu ermitteln. Eine über aufgeklebte Etikett angebrachte Plombierfolie schützt dieses vor dem Ablösen.

ADFC EIN-Code-Etikett aufgeklebt

Dieses Verfahren eignet sich auch für andere Gegenstände, wie Kameras, Fahrrad-Akkus, Kinderwagen, Pferdesättel, etc.

Die hier vorgestellte Android-App ermöglicht es, EIN-Codes zu generieren und einen Etikettendrucker anzusteuern.

In­halts­ver­zeich­nis

Download

Versionshistorie

Installation

Bedienungsanleitung

Implementierung

Dialoge (Activity, Screen)

Hauptbildschirm (Screen1)

Funktionsdialog Online-Abfrage (Online-Abfrage)

Funktionsdialog Decodierung (Decode)

Funktionsdialog Listendruck (Listendruck)

Funktionsdialog Straße hinzufügen (Hinzufuegen)

Funktionsdialog Verwaltung (Verwaltung)

Funktionsdialog Info (About)

Funktionsdialog Barcode-Anzeige (BarCode)

Details zur Implementierung der ActionBar-Komponente

Details zur Implementierung des Etikettendrucks

Datenbankstruktur

Erweiterungskomponenten der App (Extensions)

Drucken über Bluetooth

CSV-Datei einlesen

SQLite-Erweiterungen

Weitere eingesetzte Extensions

Ressourcen

Barcode-Font

ToDo

Download

Das App-Inventor-Projekt ADFC_EIN_Code_SH_HH.aia zum Download (Stand 29.6.2025).

Versionshistorie

Version Anpassungen
1.0 (2024) Initiale Version
2.2 (2025-06-29) Es konnten nicht mehrere Smartphones gleichzeitig mit dem Drucker verbunden sein. Die BT-Verbindung wird nun automatisch zwei Sekunden nach dem Drucken eines Etiketts getrennt. Diese Zeit wird in etwa für den Datentransfer und das Auslösen des Drucks benötigt.

Die Druckerwahl wurde als Auswahl über eine ListPicker-Komponente implementiert. Der Funktionsdialog Druckerwahl entfällt.

Installation

Leider ist die App nicht über den Google-Playstore verfügbar. Die Installation erfolgt per Download über den Web-Browser. Ein Download-Link kann über diese E-Mail-Adresse angefordert werden: E-Mail-Adresse.

Wenn die zurückgelieferte E-Mail mit dem Handy oder Tablet geöffnet und der Link angeklickt wird, sollte die Installation beginnen.

Wenn auf dem Handy keine Mail empfangen werden und den Link auch nicht dorthin übertragen werden kann, kann die Datei auf einem PC herunter laden und über Dateitransfer in das Download-Verzeichnis des Smartphones kopiert werden. Auf dem Smartphone muss dann das Verzeichnis über einen Dateimanager (z.B. Files von Google) geöffnet und die Datei dort angetippt werden.

Bedienungsanleitung

Die ausführliche Anleitung steht im PDF- und im MS-Word-Format zur Verfügung:

Anleitung   Anleitung im PDF-Format   Anleitung im MS-Word-Format
    Download PDF   Download Word

Implementierung

Dialoge (Activity, Screen)

Hauptbildschirm (Screen1)

Funktionsdialog Online-Abfrage (Online-Abfrage)

Funktionsdialog Decodierung (Decode)

Ermittlung der Adressdaten aus einem vorhandenen EIN-Code. Zur Implementierung

Funktionsdialog Listendruck (Listendruck)

Funktionsdialog Straße hinzufügen (Hinzufuegen)

Funktionsdialog Verwaltung (Verwaltung)

Funktionsdialog Info (About)

Funktionsdialog Barcode-Anzeige (BarCode)

Anzeige des ermittelten EIN-Codes als Barcode im Format Code-128(A). Zur Implementierung

Details zur Implementierung der ActionBar-Komponente

Die Actionbar wird am Kopf jedes Screens angezeigt. Zur Implementierung

Details zur Implementierung des Etikettendrucks

Die Funktionalitäten zum Etikettendruck sind in allen Screens auf gleiche Weise implementiert. Zur Implementierung

 

Datenbankstruktur

Beschreibung des Datenbankschemas der benutzen SQLite-Datenbank.

Erweiterungskomponenten der App (Extensions)

Drucken über Bluetooth

Extension zur Ansteuerung eines Etikettendruckers vom Typ Brother P-touch E560BT per Bluetooth.

CSV-Datei einlesen

Extension zum speziellen Einlesen einer unter Windows erstellten CSV-Datei.

SQLite-Erweiterungen

Extension zum Zugriff auf eine SQLite-DAtenbank, erweitert um spezielle Funktionen für die EIN-Code-Generierung.

Weitere eingesetzte Extensions

UrsAI2StringUtils: Hilfsfunktionen zur Bearbeitung von Texten

UrsAI2Utils: Diverse Hilfsfunktionen

UrsAI2ActionBar: Menüleiste, die oben auf dem Bildschirm eines Screens angezeigt wird.

KeyBoard: zusätzliche Methoden für die Tastatur von Patryk_F

MyFonts: Verwende deine eigenen benutzerdefinierten Schriftarten von Anke

Ressourcen

Die benötigten Ressourcen werden als sogenannte Assets (Rubrik Media) in die App eingebunden. Assets ist ein separater Ordner in der Programmdatei (APK-Format). Dies ist ein ZIP-Archiv, das vom Programmcode zur Laufzeit ausgelesen aber nicht verändert werden kann.

Neben dem Barcode-Font (s.u.) enthalten den  Assets eine Reihe von Grafiken und eine Ton-Datei im ogg-Format. Download der Ressourcen-Dateien.

Barcode-Font

Der zum EIN-Code gehörende Barcode wird im im Format Code-128 angezeigt. Google Fonts  stellt mit Libre Barcode 128 Text einen passenden Font bereit. Die Berechnung der Prüfziffer wird bei free-barcode.com gut erklärt: Check digit calculation of Code-128. Die Codes für die einzelnen ASCII-zeichen findet man bei Le code 128.

 

ToDo

Größe des Barcodes variieren. Ist auf kleineren Bildschirmen nicht in einer Zeile. Dazu auch:

Funktionsdialog BarCode: Ermittlung der optimalen Breite der Label-Komponente.

Automatisch erkennen, welcher Drucker angesteuert werden kann (in Reichweite und angeschaltet)

Einlesen des Barcodes zum Drucken und zur Dekodierung