![]() |
ZXing in Android-App einbinden (Barcode)
Seit 6 Wochen habe ich nun auch das "Vergnügen", mich mit dem Feueraffen beschäftigen zu dürfen. Die derzeit in Arbeit befindliche App soll Barcodes einscannen. Das klappt unter Android mit ZXing sehr zufriedenstellend, nur habe ich dabei das Problem, dass die originale "Barcode Scanner"-App dabei bereits installiert sein muss. Im Zuge meiner Recherchen bin ich nun auf den
![]() - Verstehe ich das richtig, dass ich den diesen als *.jar mit deployen, also den Bibliotheken hinzufügen muss? - Die Wrapperdatei kann ich mir ja vermutlich mit java2op erstellen lassen (von Union gibt es da AFAIK aber bereits etwas fertiges), ist es dann auch möglich, die Dialoge dort gleich mal einzudeutschen? - Falls nicht, müsste die *.jar-Datei dann selbst kompiliert und das Übersetzen im Code selbst erledigt werden, richtig? Sorry für die vermutlich dummen Fragen, aber ich bin auf dem Gebiet auch wieder Neuling (und mein Lehrer kann das alles nicht richtig erklären, die Mitschüler sind auch doof, etc. :mrgreen:) Danke fürs Lesen. |
AW: ZXing in Android-App einbinden (Barcode)
![]() statt der ZXing APP Nutzung lieber eine echte LIB fest einbinden... ZBAR ist hier was kostenloses, wenn es um PDF417 Codes geht, können komerz. Libs auch ganz schön ins Geld gehen! |
AW: ZXing in Android-App einbinden (Barcode)
Ich habe leider keine Antwort auf deine (eigentliche) Frage, aber trotzdem eine Lösung des Problems:
Wenn du 60$ über hast, dann kauf dir eine der beiden folgenden Komponenten: ![]() ![]() Wir haben uns für letztere entschieden, insbesondere da nicht auf Android beschränkt (wobei wir derzeit nur Android und Windows unterstützen). |
AW: ZXing in Android-App einbinden (Barcode)
Danke für die Tipps. Von WinSoft haben wir sogar alles lizenziert, bei ersten Tests war die Performance allerdings dermaßen im Keller, dass wir uns doch für ZXing entschieden haben. Es geht ja auch eher darum, wie der IntentIntegrator im Detail einzubinden ist. Dass der dann den Benutzer ggf. dazu ermutigt, eine "Fremdapp" zu installieren, damit können wir leben, zumal dabei für den Kunden keine zusätzlichen Kosten entstehen. Das hat zudem den Vorteil, dass der eigentliche Scanner dann automatisch aktualisiert wird, ohne dass wir etwas dazu tun müssten.
|
AW: ZXing in Android-App einbinden (Barcode)
Zitat:
|
AW: ZXing in Android-App einbinden (Barcode)
Zitat:
|
AW: ZXing in Android-App einbinden (Barcode)
Danke für die Warnung, mit java2op habe ich es auch hinbekommen, nur habe ich nun das nächste Problem.
Zitat:
|
AW: ZXing in Android-App einbinden (Barcode)
Hier nur der Vollständigkeitshalber der Link zu dem Open Source ZXing.Delphi Projekt
![]() Wenn du eine jar Datei in ein Android Projekt unter Bibliotheken zu den anderen jar Dateien hinzufügt, wird sie automatisch mit übertragen, ohne dass sie unter Bereitstellung extra auftaucht oder von Hand hinzugefügt werden muss. Greift die jar Datei selbst aber wieder auf eine spezielle *.so Datei zurück, muss diese wieder von Hand mit bereitgestellt werden, unter Remote-Pfad ist dann ganz normal der Standard lib Verzeichnis zu wählen „library\lib\armeabi-v7a\“. |
AW: ZXing in Android-App einbinden (Barcode)
Zitat:
Das kommt demnächst auch auf mich zu. Im Einsatz derzeit seit etlichen Jahren eine Lösung, die im Opera-Mobile-Browser auf Rugged Handhelds läuft und ein PHP-MySQL-Backend hat. Inzwischen alles derart überaltert dass die Akkus in den Geräten nicht mehr wollen und kein Ersatz beschafft werden kann. Erst wenn nix mehr läuft sieht der Chef die Notwendigkeit und dann soll immer alles ganz schnell ausgetauscht sein :-( Die Neuentwicklung ist derzeit noch nicht in eine bestimmte Richtung festgelegt. Ich würde gern auf Delphi setzen weil ich da A) teilweise auf vorhandene Sourcen zurückgreifen kann und B) mich nicht groß einarbeiten muss. Alles aus Zeitgründen. Hast du Erfahrungen mit der Einbindung von dedizierten Barcode-Scannern? Also nicht die Standard-Schnittstellen für die Allerweltskamera sondern die Hardware-Scanner (z.B. Intermec etc.) Idealerweise würde ich von MySQL mal abgesehen auf ein Backend gleich ganz verzichten und mich z.B. mit UniDAC direkt vom Handheld an die DB verbinden. Lizenz für UniDAC Pro ist vorhanden (müsste evtl. mal aufgefrischt werden). Ich hatte mal probeweise mit Freepascal/Lazarus was für die alten Windows-Mobile-Kisten ausprobiert, aber das war sowohl von der Entwicklungszeit als auch von der Performance her zum Heulen. Die Handhelds müssen eh ausgetauscht werden. Darum geht meine Denke in die Richtung Android und Firemonkey - lasse mich da aber auch gern umstimmen. Grüße Cody |
AW: ZXing in Android-App einbinden (Barcode)
Von Erfahrungen würde ich nicht reden wollen, aber die angesprochene App kann auch den
![]() ![]() |
AW: ZXing in Android-App einbinden (Barcode)
Was mich an der ganzen Thematik Industrial Handhelds so nervt sind die unglaublich trägen Migrationsprozesse. Am Tag X wo ein Plattformwechsel ansteht wird schon das Budget so knapp bemessen, dass man nur Hardware ins Auge fassen kann, die herstellerseitig schon (fast) wieder abgekündigt sind. Von den OS-Updates mal ganz abgesehen. Der Dolphin 70E läuft ja auch "noch" mit Android 4.0. Man entwickelt praktisch ständig für und auf obsoleten Plattformen.
Und kaum hat man die Software fertig holt einen der technische Fortschritt wieder ein und man darf seinem Vorgesetzten erklären, dass nun schon wieder alles von vorne losgehen muss. Brrr.... Das ist der Hauptgrund warum ich von Windows CE/Mobile/Embedded weg will. Die Brüche zwischen den Major-Releases sind einfach zu groß (Von CE 4.3 bis 6.5 gings ja noch, dann der große Cut zu WM7 und jetzt wieder ein Cut zu irgendwas mit "10"). Bei Android scheinen mir die Übergänge "sanfter" zu sein. Oder täuscht das? |
AW: ZXing in Android-App einbinden (Barcode)
Da musst Du erfahrenere User fragen, ich mache wie gesagt erst seit 6 Wochen mit Firemonkey und dementsprechend mit mobiler Entwicklung herum (OK, vorher ein paar kleine Versuche mit jQuery, aber da spielt das OS ja keine Rolle).
|
AW: ZXing in Android-App einbinden (Barcode)
Ich fürchte fast, in der Kombination Delphi + Firemonkey + Embedded Handheld dürftest du schon einer der erfahrendsten User weltweit sein :lol:
|
AW: ZXing in Android-App einbinden (Barcode)
Das Problem aus
![]() |
AW: ZXing in Android-App einbinden (Barcode)
Zitat:
Delphi-Quellcode:
uses
FMX.Helpers.Android; ... intent := TJIntent.Create; intent.setAction(StringToJString('com.google.zxing.client.android.SCAN')); SharedActivity.startActivityForResult(intent, 0); |
AW: ZXing in Android-App einbinden (Barcode)
Danke, das ist exakt der Code, den ich zum Scannen verwende. Wenn ich aber einfach den IntentIntegrator mit der SharedActivity aufrufe, friert die App ein, irgendetwas scheint da noch zu fehlen. Dieses Java-Wrapper-Gedöns kann einen echt zur Verzweiflung treiben.
[edit] OK, nicht ganz exakt, nachdem ich noch einmal nachgeschaut habe, aber im Prinzip tue ich dasselbe, nur über eine Klasse bzw. deren Ableitung verteilt. [/edit] |
AW: ZXing in Android-App einbinden (Barcode)
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
ich hoffe du hast "Warmnachten" gut rum bekommen? ;-) Ich jedenfalls bin froh dass der Stress vorbei ist und ich mich nun wieder in Ruhe mit Java rumärgern darf ^^ Also Situation ist folgende: Nachdem ich ein halbes Jahr auf die Freigabe für die Anschaffung der Dolphin 75e warten musste, kamen die endlich kurz vor Weihnachten. Ich habe mir von Honeywell das ![]() Desweiteren habe ich die DataCollection.jar als zusätzliche Android-Bibliothek in die Projektverwaltung aufgenommen und in meiner AndroidManifest.template.xml die Zeile <%services%> gegen <service android:exported="false" android:name="com.honeywell.aidc.mytestapp"/> ausgetauscht, weil sich der Java-Compiler andernfalls über einen fehlenden Name-Parameter im Service-Tag aufgeregt hat. Ob das so sauber ist in den Namenszweig von Honeywell zu gehen, keine Ahnung. Sah erstmal schick aus und der Compiler war zufrieden ^^ So, und nun steh ich da wie ein Ochs vorm Scheunentor und komm nicht weiter. Soweit ich die Interfaces verstehe, müsste ich ein Objekt "JBarcodeReader" instantiieren und dann z.B. über addBarcodeListener einen Eventhandler zuweisen welcher auf Ereignisse vom Barcode-Dienst lauscht und dann an meine App weiterleitet. Ferner habe ich inzwischen aufgeschnappt, dass ich eine Activity im Delphi erweitern müsste, wobei mir da im Moment auch die ??? überm Kopf kreisen. Einfach gesagt, ich brauch mal eine Art Todo-Liste wie man hier vorgehen muss. Denn die verfügbaren Tutorials setzen IMHO Erfahrung mit Android-Java-Entwicklung voraus, die ich leider nicht habe. Vielleicht kannst du mal einen kleinen Einblick in deine Implementierung vom Dolphin 70e geben? Evtl. ist das ja ähnlich... Grüße Cody |
AW: ZXing in Android-App einbinden (Barcode)
Irgendwie sieht das komplett anders aus als das SDK für den 70e. Ich kann ja mal bei Gelegenheit meine Units auf das Nötigste eindampfen und Dir zukommen lassen, vielleicht geht es ja damit sofort.
|
AW: ZXing in Android-App einbinden (Barcode)
Das wär echt supi. Ich dachte mir schon dass es da Unterschiede gibt denn trotz der Namensähnlichkeit sind der Dolphin 70e und der 75e ziemlich verschieden. Andere Hardware, anderes OS... Scheinbar hat die Honigquelle auch ein ganz neues SDK gebacken. Wobei ich ja "nur" einen Einstieg brauche.
EDIT: Ich vermute mal, du hast auch die Windows-Version vom Dolphin oder? Ich habe nämlich die Android-Version... |
AW: ZXing in Android-App einbinden (Barcode)
Ich weiß nicht ob es hilft...
Hast du die Callback Methode im Message Manager registriert?
Delphi-Quellcode:
SubscriptionID := TMessageManager.DefaultManager.SubscribeToMessage(TMessageResultNotification, HandleActivityMessage);
|
AW: ZXing in Android-App einbinden (Barcode)
Zitat:
Damit habe ich mich zwar bei dem Projekt auf diese Hardware-Basis festgelegt, aber das ist im Business-Umfeld nicht das große Problem. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz