unserem Blog

Barcode-Kreuzung

Barcoding auf Android

zxing_zebra_logo
Meistens, wenn Mitarbeiter bei Telaeris hier veröffentlichen, handelt es sich um Beispiele aus der Praxis, die sich auf unsere Produkte beziehen. Auf diese Weise können wir ein breites Themenspektrum besprechen, darunter Barcodes und RFID-Nutzung, Implementierung von Sicherheits- oder Sicherheitssystemen oder Tipps zum Führen eines Unternehmens. Aber im Mittelpunkt unseres Handelns steht das Auffinden saubere Lösungen für knifflige Probleme. Die nächsten Blogeinträge sind Beispiele dafür, wie zwei Praktikanten bei Telaeris mit der Entwicklung eines kostenlosen neuen Mobilprodukts begonnen haben, um Barcodes und RFID-Tags von Ihrem Android- oder iPhone-Mobilgerät aus zu verfolgen. Das System wird aufgerufen DataLock und wurde gerade gestartet - ich empfehle Ihnen dringend, sich die App und das System anzuschauen. In diesem Artikel wird beschrieben, wie Sie eine einfache Barcode-Leseanwendung mithilfe der Open-Source-Zxing-Bibliothek für Android erstellen.

Dieser Blog ist für die Hacker, die gerne codieren. Genießen!

Implementieren einer vereinfachten Zxing-Bibliothek
Während wir durch den Prozess lernten, wie man das benutzt Zxing Englisch: www.db-artmag.de/2003/12/e/1/111-4.php Wir fanden bald heraus, dass es etwas mühsam war zu verstehen, was in dieser riesigen Bibliothek vor sich ging. Es gab viele Tutorials, aber viele der Schritte verwirrten uns oder waren veraltet. Es gab Dinge, die im Code fehlten, oder Dinge, die basierend auf der Bibliotheksversion unterschiedlich waren oder etwas, das nicht vollständig geklärt wurde. Wir wollten ein Tutorial erstellen, mit dem jeder, der eine einfache Zxing-Scan-Bibliothek implementieren möchte, einen schnellen Einstieg in die eigene Anwendung erhalten kann.

In diesem Lernprogramm wird eine heruntergefahrene Version der Zxing-Bibliothek verwendet, um die Grundlagen für die Implementierung der Bibliothek in eine eigenständige App zu vermitteln und eine eigene native Android-App bereitzustellen. Wir verwenden das Android Development Kit mit SDK 19, android 4.4-Bibliothek. Die Bibliothek wurde anstelle der standardmäßigen horizontalen Ausrichtung als Barcode-Scanner im Hochformatmodus geändert.

Sie können unsere vereinfachte Version der Zxing-Bibliothek herunterladen, um sie hier zu verwenden und zu testen: CaptureActivity. Dies ist anders als die freigegebene ZXing-Bibliothek, aber es ist gut, um loszulegen.

Wenn Sie Eclipse mit dem Android SDK nicht haben, laden Sie das Programm herunter und installieren Sie es Android Entwicklungskit. Öffnen Sie das Android SDK und installieren Sie die benötigten Komponenten. Als nächstes öffne Eclipse.

Schritt 1. Zuerst werden wir das Projekt erstellen.

Gehe zum Hauptmenü Datei -> Neu -> Android-Anwendungsprojekt. Benennen Sie Ihr Projekt (wir haben unsere "Scanner App" genannt). Kopieren Sie die Einstellungen unten und klicken Sie auf die nächste 3-Zeit bis zur Erstellung der Aktivitätsseite. Wählen Sie Leere Aktivität und klicken Sie auf Weiter und dann auf Fertig stellen. Der Ordner wird standardmäßig auf der linken Seite des Bildschirms angezeigt. Wenn nicht, klicken Sie auf die Schaltfläche zum Maximieren, um den Projektbildschirm in Eclipse zu öffnen.

Barcode-Kreuzung

Schritt 2. Behebe Themenfehler (wenn du keine hast, gehe zu Schritt 3)

Wenn Sie Fehler in Ihren Wertordnern haben, kann dies ein Eclipse-Problem sein. Öffnen Sie alle style.xml-Seiten und löschen Sie alle Style-Tags und deren Inhalt. Gehen Sie auch zu Ihrer AndroidManifest.xml und löschen Sie das Android: theme = "@ style / AppTheme" unter Anwendung.

Schritt 3. Als nächstes wird die Scanner-Bibliothek importiert.

Wenn Sie noch nicht haben, laden Sie bitte den CaptureActivity-Zip oben herunter. Gehe zu Datei -> Importieren -> Vorhandenen Android-Code in Arbeitsbereich importieren -> und Durchsuchen öffnen und finde den Zxing-Quellcode, den du heruntergeladen hast. Überprüfen Sie nur das erste aufgerufene Projekt CaptureActivity. Der Pfad sollte nicht Build / in enthalten. Klicken Sie auf Fertig stellen. Rechtsklick auf die / CaptureActivity / Ordner in der Registerkarte Paket-Explorer und klicken Sie auf Eigenschaften -> Android und stellen Sie sicher, dass das Kontrollkästchen "Ist Bibliothek" aktiviert ist. OK klicken.

Schritt 4. Wir müssen jetzt unsere App mit der Scanner-Bibliothek verbinden.

Klicken Sie mit der rechten Maustaste auf Ihren Android-App-Ordner und dann auf Eigenschaften -> Android. Klicken Sie auf die Schaltfläche Hinzufügen, und klicken Sie auf CaptureActivity. Stellen Sie sicher, dass ein grünes Häkchen angezeigt wird, nachdem Sie auf dem Android-Bildschirm mit dem Projekt Scanner auf OK geklickt haben. OK klicken.

Schritt 5. Wir können jetzt mit der Implementierung des Scanners in unsere Anwendung beginnen. Beginnen Sie mit der Datei mainActivity.java.

Wechseln Sie in Ihrem App-Ordner zu / src / Ordner und öffnen Sie Ihr HauptActivity.java Datei. Unten ist der Code erforderlich. Kopieren Sie und fügen Sie ein, was Sie nicht haben. Der Code, den Sie hinzufügen müssen, wird in rotem Text angezeigt. Wenn Sie Fehler erhalten, müssen Sie bestimmte Klassen importieren. Sie können einfach Strg + Shift + O drücken, und alle benötigten Importe werden importiert.



Paket com.example.scannerapp; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.Toast; public class MainActivity erweitert Aktivität {@Override protected void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); } @Override public boolean onCreateOptionsMenu (Menü Menü) {// Das Menü aufblasen; Dies fügt der Aktionsleiste Elemente hinzu, sofern diese vorhanden sind. getMenuInflater (). inflate (R.menu.main, Menü); wahr zurückgeben; } P eschallungssysteme Leere openScanner (Ansicht Ansicht) {Intent Absicht = new Intent ( "com.example.scannerapp.SCAN"); startActivityForResult (intent, 0000); } public void onActivityResult (int requestCode, int resultCode, Absichtsabsicht) {if (requestCode == 0000) {if (resultCode == RESULT_OK) {String contents = intent.getStringExtra ("SCAN_RESULT"); Toast.makeText (this Inhalte, 0) .show (); } else if (resultCode == RESULT_CANCELED) {// Handle cancel}}} } 

Hier gibt es zwei Schlüsselfunktionen:

  1. Die openScanner-Methode wird ausgeführt, wenn eine Taste gedrückt wird, und öffnet anschließend den Scanner.
  2. Die onActivityResult-Methode gibt die Zeichenfolge des gelesenen Barcodes zurück. Von hier aus können Sie eine neue Absicht öffnen und Variablen übergeben, wenn Sie nach dem Scan einen anderen Bildschirm anzeigen möchten.

Schritt 6.Wir werden nun das Layout in der Datei activity_main.xml ändern.

Jetzt in deinem / app / Ordner, gehe zum res Ordner -> Layout -> activity_main.xml Datei. Es sollte wie folgt aussehen. Fügen Sie den folgenden roten Code hinzu:


<RelativeLayout xmlns: android = "http://schemas.android.com/apk/res/android" xmlns: tools = "http://schemas.android.com/tools" android: layout_width = "match_parent" android: layout_height = "match_parent" android: paddingBottom = "@ dimen / activity_vertical_margin" android: paddingLeft = "@ dimen / activity_horizontal_margin" android: paddingRight = "@ dimen / activity_horizontal_margin" android: paddingTop = "@ dimen / activity_vertical". Hauptaktivität "> < Schaltfläche android: id =" @ + id / button0000 "android: layout_width =" wrap_content "android: layout_height =" wrap_content "android: layout_below =" @ + id / textView0000 "android: layout_centerHorizontal =" true "android: layout_marginTop = "1dp" android: text = "Scannen" android: onClick = "openScanner" /> </ RelativeLayout>

Dies fügt eine Schaltfläche hinzu, und wenn sie gedrückt wird, wird die Methode openScanner von der ausgeführt HauptActivity.java Datei. Möglicherweise müssen Sie auch ein Thema auswählen. Ich wählte Theme.holo.

Schritt 7. Die letzte Änderung besteht darin, die Datei androidManifest.xml zu bearbeiten.

Gehen Sie zum androidManifest.xml Datei unter dem Projektverzeichnis. Der Code sollte wie folgt aussehen und den roten Code erneut kopieren



<? xml version = "1.0" coding = "utf-8"?> <Manifest xmlns: android = "http://schemas.android.com/apk/res/android" package = "com.example.scannerapp" android : versionCode = "1" android: versionName = "1.0"> <use-sdk android: minSdkVersion = "8" android: targetSdkVersion = "21" /> <! - Von ZXING ERFORDERLICHE ERLAUBNISSE android : name = "android.permission.CAMERA" /> <Benutzungsberechtigung android: name = "android.permission.INTERNET" /> <Benutzungsberechtigung android: name = "android.permission.WRITE_EXTERNAL_STORAGE" /> <! - VON ZXING ERFORDERLICHE MERKMALE -> <Benutzungsfunktion android: name = "android.hardware.camera" android: required = "true" /> <verwendungsfunktion android: name = "android.hardware.touchscreen" android: required = "false" /> <verwendet-feature android: name = "android.hardware.telephony" android: required = "false" /> <Anwendung android: allowBackup = "true" android: icon = "@ drawable / ic_launcher" android: label = "@ string / app_name" android: theme = "@ style / AppTheme"> <Aktivität android: name = "com.example.scannerapp.Ma inActivity "android: label =" @ string / app_name "> <intent-filter> <action android: name =" android.intent.action.MAIN "/> <category android: name =" android.intent.category.LAUNCHER " /> </ intent-filter> </ activity> <activity android: name = "com.telaeris.datalockrScanner.android.CaptureActivity" android: screenOrientation = "portrait" android: configChanges = "Ausrichtung | keyboardHidden" android: theme = " @android: style / Theme.NoTitleBar.Fullscreen "android: windowSoftInputMode =" stateAlwaysHidden "> <intent-filter> <action android: name =" android.intent.category.MAIN "/> <category android: name =" android. intent.category.LAUNCHER "/> </ intent-filter> <intent-filter> <action android: name =" com.example.scannerapp.SCAN "/> <category android: name =" android.intent.category.DEFAULT "/> </ intent-filter> </ activity> </ application> </ manifest>

Wir fügen Berechtigungen hinzu, die Android benötigt, um die Kamera zu verwenden und Aktivitäten in die Anwendung einzuschließen, um zu wissen, welche Dateien geöffnet werden sollen, wenn wir den Scanner auf dem Gerät öffnen möchten.

Schritt 8. Alles erledigt!

Sie sollten jetzt in der Lage sein, Ihre Anwendung auf einem Gerät zu kompilieren und auszuführen. Wenn Compilerfehler auftreten, möchten Sie möglicherweise das Projekt bereinigen und / oder Eclipse neu starten.


Danke
Dieser Blog verdankt vielen Dank:

  • Alberto Landaverde, der im Telaeris-Sommer von 2012 arbeitete, der die Zxing-Bibliothek modifiziert und die erste vereinfachte Bibliothek erstellt hat
  • Kelly Lim, derzeit Praktikant bei Telaeris, nahm diese Bibliothek in Anspruch und baute die Bibliothek auf DataLock Android App. Kelly hat auch den Inhalt dieses Blogs geschrieben.
  • Jake Pham, jetziger Praktikant bei Telaeris, der das Tutorial hier durchgearbeitet hat, um sicherzustellen, dass alles wie angekündigt funktioniert.

Bleiben Sie dran für die nächste Ausgabe, in der wir diskutieren, wie Sie die ZXing-Bibliothek im Hoch- und Querformat scannen lassen. Und wenn Sie Zeit haben, werfen Sie einen Blick auf das Produkt aller ihrer Bemühungen - DataLock.

DataLockRLogo
Gesehen werden. Gescannt werden. Geteilt werden.

Hinterlasse einen Kommentar

*

Newsletter


mit einem Vertreter sprechen

Kontakt

Telefon: 858-627-9700
Fax: 858-627-9702
-------------------------------
9123 Chesapeake Dr.
San Diego, CA 92123
-------------------------------
sales@telaeris.com