17. März 2010

Pairing: Bluetooth-Keyboard unter Android aktivieren

So, nach einer längeren Pause gibt es mal wieder eine kleine Anleitung: Wie verbinde ich eine Bluetooth-Tastatur mit Android-Phones?

Wer mal versucht hat, ein Bluetooth-Gerät mit Android zu pairen, hat das Problem sicher schon gefunden: Android hat keine HIDD-Unterstützung. Das heißt, es lassen sich zum Beispiel keine BT-Tastaturen nutzen.

Für Root-User gibt es aber eine Lösung. Dazu benötigt ihr zunächst folgende Dateien, die ihr euch hier herunterladen könnt: hciconfig, hcitool und hidd.

Anschießend müsst ihr die Dateien im Android-System unter "/system/xbin" ablegen. Damit das funktioniert, verbindet ihr euer Gerät entweder mit dem Rechner und mountet es per ADB mit Schreibrechten oder, falls jemand nicht konsolenfest ist, ihr nutzt dazu den Root Explorer aus dem Android Market (ca. 1 Euro), der die Schreibrechte per Klick ändert.

Jetzt aktiviert ihr die Bluetooth-Funktion des Smartphones und verbindet euch mit dem Keyboard. Es sollte jetzt die Meldung kommen "Paired but not connected". Damit sich die Tastatur nutzen lässt, sind noch ein paar Befehle nötig. Hier kann man wieder ADB verwenden oder alternativ einen Terminal aus dem Market installieren - was auf Dauer die bessere Lösung ist, da man ja nicht ständig einen Rechner parat hat, um die Tastatur zu aktivieren. Ich habe mir dazu den Terminal Emulator installiert.

Meldet euch als Root an:

su

Nun muss man die Befehle

hciconfig
hcitool dev

eingeben. Mit

hcitool scan

findet ihr jetzt die Adresse eures Keyboards heraus, und mit dem Befehl

hidd --connect Adresse

aktiviert ihr die Tastatur.

Auf dem G1 soll das perfekt laufen. Auch mein Milestone (Droid) konnte ich so verbinden. Allerdings nur mit einem Zahlenpad, das nicht einwandfrei mit dem Milestone zusammenarbeitet - meine aktuelle BT-Tasta ist defekt. Ich kann also im Moment nicht ausprobieren, ob die Standard-Tasten richtig erkannt werden. Aber im Prinzip funktioniert's. Es gibt also keinen Grund, wieso es nicht mit dem Keyboard klappen sollte.

Im nächsten Schritt will ich das Keyboard-Layout ändern, damit ich ein Bluetooth-Gamepad unter Android nutzen kann. Dazu muss ich aber erst wissen, wie ich das Layout ändere bzw. ob es überhaupt möglich ist, es so anzupassen, dass es mit einem Gamepad zusammenarbeitet. Bisher weiß ich nur, dass die Layout-Files unter /system/usr liegen, also noch nicht wirklich viel... Aber in meiner Unwissenheit sage ich einfach mal: Das geht!

16 Kommentare:

Andreas hat gesagt…

Hallo,

hast Du schon eine Lösung für das Keyboard-Layout Englisch/Deutsch gefunden? An der Stelle stehe ich nämlich auch...

Manuel Schreiber on 13. August 2010 um 11:39 hat gesagt…

Ich konnte leider noch nicht dran weiterbasteln

Konkretes kann ich dir daher nicht sagen, aber schau dir mal die qwerty.kcm unter /system/usr/keychars an.

der Link hier könnte dir weiterhelfen:
http://forum.xda-developers.com/showthread.php?t=468703

Andreas hat gesagt…

Super, das ist doch mal ein guter Hinweis. Ich werd damit mal ein bisschen rumspielen.

Wobei bei mir auf dem Nexus nur eine /qwerty.kcm.bin ist, d.h. wohl die kompilierte Fassung.

Ist das eigentlich die richtige Datei bzw. für was außer hddi / Bluetooth wird die Datei noch genutzt? Bei mir liegt z.B. noch eine QWERTY2.kcm.bin und eine mahimahi-keypad.kcm.bin Datei drin...

Naja, im Zweifelsfall muss ich mal ein bisschen experimentieren :-)

Manuel Schreiber on 13. August 2010 um 13:46 hat gesagt…

also auf der Android-Seite steht folgendes:

If you don't specify a keylayout file, Android will default to /system/usr/keylayout/qwerty.kl
...
If you don't specify a keychar file, Android will default to /system/usr/keychar/qwerty.kl

könnte daher auch daran liegen. wie gesagt, ich habe noch nicht weiter damit herumexperimentiert. weiß also nicht, was genau dafür verantwortlich ist, dass das Standard-US-Layout genutzt wird. Ich glaube, es hilft nur trial&error :D

hier der Link:
http://pdk.android.com/online-pdk/guide/keymaps_keyboard_input.html

Anonym hat gesagt…

Wie siehts aus mit Usern die kein Root haben? Also alles standart (Android 2.1)^^

Mark on 6. April 2011 um 15:04 hat gesagt…

Wenn ihr ein Android mit HTC Sense habt (Stand 06.04.2011), dann habt ihr auch den HTC Bluetooth Stack mit drauf. Und mit dem werden die ganzen Befehle hier nicht funktionieren.

Die Lösung: ein Rom ohne HTC Mods btw. Sense flashen. :-(

Die drei Dateien lassen sich aber auch in /data/local/bin (ggf. vorher anlegen) kopieren.

Manuel Schreiber on 6. April 2011 um 18:59 hat gesagt…

"Wie siehts aus mit Usern die kein Root haben?"
-> wird dann mit dieser Methode nicht klappen ;) es gibt aber bereits andere Lösungen im Market

@Mark

Danke für den Hinweis!

Cool Jo on 11. April 2011 um 14:51 hat gesagt…

wie ist das gemeint mit "als root anmelden"?
wenn man dort einfach "root" eingibt dann gehts iwie nich, oder ich hab die falsche app. ich hab die hier:
https://market.android.com/details?id=jackpal.androidterm&feature=search_result

Cool Jo on 11. April 2011 um 14:51 hat gesagt…

oder muss man statt root etwas anderes eingeben?

Cool Jo on 11. April 2011 um 16:08 hat gesagt…

ahh ok man mus zum root anmelden su eingeben.
aber dann komm ich noch nicht weiter.
zeigt immer not found an.
mus ich die tastatur vorher koppeln?
die tastatur kommt nähmlich erst noch.
wollt nur schon mal ausprobieren ob das hier schon geht.

Cool Jo on 11. April 2011 um 16:18 hat gesagt…

ok weis nicht obs bei allen so ist. aber bei mir muss man nach hciconfig... immer .bin setzen.
also:
hciconfig.bin
hcitool.bin dev
hcitool.bin scan

Manuel Schreiber on 11. April 2011 um 16:20 hat gesagt…

@coolerjo

dein Handy muss gerootet sein, sonst klappt dieser Weg nicht.

Cool Jo on 12. April 2011 um 14:50 hat gesagt…

ja mein handy hab ich gerootet.
ich bin mir da sicher, denn ich habe ja andere anwendungen mit root und da kommt dann die meldung dass der app su-rechte zugelassen wurden.
die meldung kommt auch bei terminal emulator.
aber anscheinend muss man erst die tastatur koppeln und dann die befehle eingeben.
ist zumindest hier http://www.android-hilfe.de/android-allgemein/33556-bluetooth-tastatur-android.html (dritter komentar) so denn bei mir steht da nicht so viel.
bei mir steht dann nur da
$su
# hciconfig
# hcitool dev
Devices:
# hcitool scan
Device is not available: No such device

ich glaube jedenfalls das man erst koppeln muss.
PS: was ist denn eigentlich mit der app im market?
welche ist das denn?

Manuel Schreiber on 12. April 2011 um 16:18 hat gesagt…

Eigenartig, ich kann dir da leider nicht weiterhelfen. Wie im Post auch steht, habe ich Bluetooth aktiviert, gepaired und dann die Befehle im Terminal eingegeben - danach ging's. Findet dein Gerät die Tastatur überhaupt per BT?

Mit Alternativen meinte ich sowas hier (habe ich aber nicht getestet):
Bluetooth Keyboard Easyconnect

https://market.android.com/details?id=net.mybesttools.btkbservice&feature=search_result

Cool Jo on 12. April 2011 um 19:16 hat gesagt…

die app sieht schon mal gut aus.
wie ich oben schon geschrieben habe bekomme ich die tastatur noch.
ich hatte vorher schon einmal eine von pearl .
die habe ich aber wieder zurück geschickt weil ich es nicht hinbekommen habe die tastatur zu pairen. da habe ich diesen post noch nicht entdeckt.
villeicht währe es ja auch eine möglichkeit, das die geräte in bluetooth-geräte wenn man lang auf dem namen bleibt, wieder
verbinden
Optionen und Kopplung aufheben anzeigt.
zumindest ist das bei mir so.
bei mir zeigt es nur kopplung aufheben an.

Cool Jo on 12. Mai 2011 um 18:32 hat gesagt…

ich habe jetzt die tastatur und sie geht jez auch.
aber weist du wie man die tasten von qwerty zu qwertz macht und die anderen tasten umstellt?

Kommentar veröffentlichen

Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.

 

Android: Apps, Hardware, Anleitungen Copyright © 2009 Gadget Blog is Designed by Ipietoon (modified by Manuel Schreiber) Sponsored by Online Business Journal