Bluetooth in HID Mode

M

MandraKobold

Ambitioniertes Mitglied
3
Hallo,

ich versuche verzweifelt ein gutes Beispiel für eine Bluetooth Verbindung via HID Modus.
Könnt ihr mir da vielleicht helfen? -gegoogled hatte ich bereits, aber irgendwie verstehe ich es nicht oder es steht nur Stichpunktartig da wie es funktionieren sollte.

Für was?
Ich habe vor ein externes, nicht Android Gerät mit einem Android-Gerät zu verbinden. Daten von dem nicht Android Gerät sollen auf dem Android verarbeietet werden. Ähnlich einer Tastatur.

Die meisten Beispiele im Web sind für SPP-Verbindungen.....

Wäre toll wenn ihr mir da mal einen Tip in die richtige Richtung geben könntet. Danke.

Gekoppelt udn gepaart sind die Geräte bereits.

VG
Mandra
 
Hi, da ich es schon geschafft habe eine HID Verbindung mit einem Arduino zu Android aufzubauen, bräuchte ich ein paar Informationen.

Welchen Bluetooth Chip benutzt du? Kannst du selber an die Kontakte dran?
Beschreib einfach ein wenig mehr, was du mit welchen Geräten machen möchtest, vielleicht kann ich dir dann helfen.
 
Hallo,

schon mal danke für deine Antwort.
Erst mal Glückwunsch, dass du es bereits geschafft hast.

Bei dem nicht Android Gerät handelt es sich um einen Handelsüblichen Bluetooth Scanner, der freiverkäuflich ist.
Dieser soll die gescannten Daten, an das Android Gerät übermitteln, die dann wiederum in einer App verarbeitet werden.

Der Händler meinte dass es mit HID Modus funktionieren sollte. SPP wäre nur ein anderes Protokoll und es wäre daher theoretisch auch möglich. Leider konnte dieser mir
aber keinen Code oder weitere Hilfestellung zu verfügung stellen und hat mich auf die Android Dokumention verwiesen.

Es handelt sich um eine reine Software angelegenheit, an der Hardware darf nicht geändert werden.

Sollten noch fragen offen sein, einfach melden.
 
Hi,

leider immer noch nicht genug Informationen.

Was für ein Hersteller hat den Scanner gebaut? Wie lautet die Modellnummer?

Nach meinen Erfahrungen muss das Pairing vom Bluetooth-Endgerät (hier Scanner) gestartet werden und auch nur dort kann man HID oder SPP einstellen.

Das sollte auch Softwaretechnisch machbar sein, aber dann nur am Scanner.

Ich habe beispielsweise diesen Chip gekauft (https://www.sparkfun.com/products/10938) und nach größeren Problemen zum Laufen bekommen.

Da ich auch Probleme mit SPP und HID hatte, würde ich dir gerne helfen.
Bei dem oben genannten Chip kann man in den ersten 30 Sekunden nach dem Boot das Protokoll ändern. (Es geht auch Hardwareseitig)
Dafür muss man in den "Command mode" und kann es wie folgt einstellen:
$$$ = command mode
S~,0 = enables SPP protocol
R,1 = reboot using SPP
$$$ S~,0 R,1

$$$ = command mode
S~,6 = enables HID protocol
R,1 = reboot using HID
$$$ S~,6 R,1

Ich habe mir nochmal deine Antwort durchgelesen.
Du sagst, deine Geräte sind schon gepaart.
Siehst du bei Android eine Tastatur oder Maus in den Bluetootheinstellungen als gepaartes Gerät?
 
Danke für deine Antwort.

Im SPP Mode ist ein Drucker als gepaartes Icon und im HID Mode ein Joystick sichtbar.
Das hängt davon ab, wie der Scanner konfiguriert wurde. Das ist wiederrum durch scannen bestimmter Barcodes einstellbar.

Schon getestet. Im moment versuche ich gerade den Scanner im SPP zum Datentransfer zu bewegen. Als Grundlage dient mir hier das BluetoothChat - Beispiel Projekt.


Wäre echt toll wenn du mir helfen könntest. Benötigst du noch immer Modell etc?

Im moment bin ich sogar recht offen ob HID oder SPP. Hauptsache ein austausch der Daten kommt überhaupt zustande.....
 
Hallo,

noch mal zurück zu dem HID Mode.

Die Geräte sind verbunden im HID.
Gescannte Daten, werde in Textfelder eingetragen als wenn sie über eine Tastatur eingetragen wurden.

Ist es möglich zu erkennen, dass Daten von dem Scanner an das Gerät gesendet wurden und diese sozusagen erst abzupassen und ggf. aufzubereiten bevor diese weiter verarbeitet werden udn selbst zu verteilen?

Ist das möglicherweise mit einem Broadcast receiver möglich?

Danke schon mal.
 
Hallo Mandrakobold,

das hört sich ja schon viel besser an.

Wenn ich dich jetzt richtig verstehe, dann kannst du schon Scannen und der gescannte Text wird in das Textfeld geschrieben, welches gerade den Fokus hat?

Da der HID-Modus ja wie eine Tastatur funktioniert, glaube ich nicht, dass du was "davor" schreiben kannst.

Ich sehe in den beiden Einstellungen HID und SPP zwei Einsatzmöglichkeiten.

HID ist normalerweise dafür da, um Tastaturen oder Mäuse an "Hosts" zu koppeln, damit man in jedem Programm auf dem "Host" Daten eingeben kann.
Bespielsweise kann man mit HID auch ein Spiel steuern, oder auch in ein Textprogramm Text eingeben.

SPP ist mehr für propritäre Lösungen geeignet. Es wird sozusagen ein eigener Treiber benötigt, und die Daten die Empfangen wurden auch weiterzuverarbeiten.

Wenn der Scanner nur in deinem selbst geschrieben Programm funktionieren muss, dann würde ich lieber zu SPP greifen.
Dort solltest du auch was "vor" dem Einpflegen des Textes setzen können.

Mir ist aber auch ein "Workarround" eingefallen.
Du könntest die Zeit loggen, wie schnell der Text in das Textfeld eingegeben wurde, und daraus folgern, dass in unter einer Sekunde beispielsweise nur der Scanner es schafft 8 Zeichen zu schreiben.
Dann kannst du den Text abgreifen und verarbeiten.
 
  • Danke
Reaktionen: MandraKobold
Danke für deine Antwort.

Habe heute morgen noch einmal den SPP mode ausprobiert und siehe da.... ohne Codeänderungen hat es funktioniert.

Deine Erklärung war super.

Als Codegrundlage wurde das BluetoothChat - Beispielprojekt genutzt.
Allerdings erfolgt der Zugriff als Client (es wurde keine BluetoothServerSocket erstellt), so dass Teile des Codes entfernt werden konnten.

VG
Mandra
 

Ähnliche Themen

S
Antworten
4
Aufrufe
4.122
mblaster4711
mblaster4711
D
  • DasDannychen
Antworten
7
Aufrufe
718
rene3006
R
D
Antworten
23
Aufrufe
2.383
Data2006
D
Zurück
Oben Unten