2017-07-22 3 views
0

Ich habe versucht, ein Stück Code zu einem Bluetooth-Bardcode-Leser zu bekommen, die ich gekauft habe und habe fast jede Bibliothek in Android Arsenal versucht.Wie man von Bluetooth Barcode-Scanner Gerät liest

Derzeit bin ich mit dieser: https://github.com/MacroYau/Blue2Serial

Ich habe alle Berechtigungen in meinem Manifest:

<uses-permission android:name="android.permission.BLUETOOTH" /> 
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> 
    <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 

ich auch die Erlaubnis beantragen, wenn die App öffnet:

ActivityCompat.requestPermissions(this, 
       new String[]{android.Manifest.permission.BLUETOOTH, 
         android.Manifest.permission.BLUETOOTH_ADMIN, 
         android.Manifest.permission.BLUETOOTH_PRIVILEGED, 
         Manifest.permission.ACCESS_COARSE_LOCATION}, 
       0); 

Ich bin In der Lage, mit dem Scanner Gerät aus der App zu verbinden, es passt in Ordnung. Aber wenn ich etwas scanne, sehe ich nicht, dass die public void onBluetoothSerialRead(String message) Methode aufhört. Es war genau das Gleiche mit all den anderen Bibliotheken, die ich ausprobierte. Ich könnte paaren, aber nicht lesen.

Umgekehrt, wenn ich eine Notizblock Art von App in das gleiche Telefon öffnen und es scannen, wird der Inhalt sofort auf den Notizblock geschrieben.

Das Scanner-Gerät verwende ich ist diese: https://www.zebra.com/us/en/products/scanners/companion-scanners/cs4070.html

Wer mit etwas Spitze mir zu geben?

Vielen Dank!

+0

Sind Sie sicher, dass das Scannergerät nicht für den Stapelmodus konfiguriert ist? –

+0

Hallo @MorrisonChang - Ich habe keine Ahnung! Weißt du, wie ich das überprüfen kann? Wenn ich es einfach mit Android selbst kopple und weitermachen kann und alles scannen kann, was ich möchte, zu irgendeiner Notizblock-ähnlichen App (oder Gmail, was auch immer). Es funktioniert einfach. –

+0

Ich habe gerade das Handbuch durchgelesen und es heißt "Normal Batch Mode (Standard)" - Der Scanner entpackt keine dekodierten Daten, sondern überträgt alle decodierten Daten über Bluetooth an den Host. Wenn der Scanner nicht mit einem Host verbunden ist und Sie versuchen, dies zu tun scannen und decodieren Sie einen Barcode, der Scanner gibt 4 kurze, hohe Pieptöne aus. " Ich habe in diesem Sinne nichts konfiguriert, also nehme ich an, dass ich den Batch-Modus nicht konfiguriert habe. –

Antwort

0

Ich kann mir ein paar Dinge vorstellen.

(1) Sie lesen einen "schlecht gestalteten" 2D-Barcode. Einige der älteren "Standard" -Barcodes haben einfache Prüfsummen, so dass viele zufällige Daten mit einem Laser-basierten Scanner tatsächlich zu einem dekodierten Wert führen können. Wenn ich mich recht erinnere, war Interleaved 2 von 5 einer von denen.

(2) Wenn Sie "alle Barcodes lesen" aktivieren, ist es möglich, dass die Untersequenz des Codeworts (weiße und schwarze Leerzeichen) einer gültigen Barcode-Definition zugeordnet wird. Ich würde nur jene 2D-Barcodetypen aktivieren, die Sie tatsächlich lesen würden.

(3) Auf der Android-Seite nimmt Ihr Bluetooth Serial Reader die Daten nicht schnell genug auf. Dies kann gemindert werden, indem der Scanner Präfix-/Suffix-Werte sendet, so dass die App weiß, wenn Sie nicht erhalten, dass es sich um einen Übertragungsfehler handelt.

+0

Danke, @MorrisonChang. Ich glaube nicht, Nummer 1 ist ein Problem, da ich mehrere Barcodes versuche und alles funktioniert gut, wenn ich die HID-Schnittstelle verwende. Ich piriere es mit Android selbst mit dem HID-Profil, gehe zu ColorNote, scanne etwas und es ist alles da. Ich habe versucht, Code für ein HID-Profil zu erstellen, aber war nicht glücklich.Kennen Sie eine Android-Bibliothek, die mit dem HID-Profil umgehen kann? –

+0

Wenn Sie mit HID gehen, wird es wie eine Bluetooth-Tastatur von Android behandelt. Ich glaube, Sie müssten das ROM ändern, um Vorfilter-/Datenänderungen vorzunehmen, bevor die Daten in die App gelangen. Wenn ich kein benutzerdefiniertes ROM bin, gehe ich von einer Kiosk-App zur Dateneingabe und benutzerdefinierten EditText-Ansichten aus, um die Dateneingabe zu verarbeiten. Ziehen Sie auch die Lizenzierung des Zebra SDK in Betracht. –

+0

Ich versuche gerade, das Zebra SDK zu verwenden, aber bis jetzt kein Glück. Eine gute Anzahl von Klassen fehlt in ihrem .aar! –

Verwandte Themen