[Bluetooth] Datei senden ohne Pairing

J

Jask

Ambitioniertes Mitglied
1
Hallo,
ich möchte in meine App eine Funktion einbauen, die es dem Benutzer ermöglicht, eine Datei mit Bluetooth
zu versenden.
Ich finde es aber sehr störend, dass man dabei das sendende Handy mit dem empfangenden Handy/PC pairen muss.
Offensichtlich kann man das Pairing mit Java Code allein und der Bluetooth Api von Android aber nicht deaktivieren.
Ich habe schon haufenweise Postings im Netz gefunden, bei denen Programmierer vor einem ähnlichen Problem standen und scheinbar auch
keine Lösung gefunden hatten. Allerdings ging es da größtenteils um automatisches Pairing.
Ich könnte nun durch meine App die Systeminterne Bluetoothweiterleitung aufrufen und die Datei damit versenden.
Dann gehts scheinbar auch ohne Pairing, aber die Lösung finde ich nicht so besonders geeignet.
Ich würde nämlich den Suchen und Senden-Prozess gern komplett in meine App einbauen, um auch die Möglichkeit zu bekommen,
das Ganze auch optisch anpassen zu können.
Ich habe auf meinem Desire die App "Bluetooth File Transfair" installiert und gesehen, dass dort zumindest die Liste mit den
gefunden Bluetooth-Handys selbst gemacht wurde. So scheint es jedenfalls.
Kann mir wohl jemand sagen, wie man so was machen kann?
 
Hi enrem,
Sorry, eventuell habe ich mich missverständlich ausgedrückt.
Ich weiß, wie man eine Liste erstellt, aber das ist nicht direkt der Punkt.

Ich machs mal ganz kurz und stelle die Frage mal ganz dumm.
Wenn ich mit der App "BT File Transfair" eine Datei senden will, brauche ich die jeweiligen Handys _nicht_ pairen.
Das geht aber eigentlich nicht, denn man _muss_ (leider!) die Handys erst pairen, bevor man eine Datei senden kann.
Zumindest wenn man es mit Java macht und die Verbindung mit
Code:
device.createRfcommSocketToServiceRecord(MY_UUID)
herstellen möchte.
Nun die Frage:
Wie macht das die App "BT File Transfair", daß man sich das nervige Pairing sparen kann und seine Datei ganz normal senden und empfangen kann?
Wird dort mit nativem Code gearbeitet oder wie könnte das umgesetzt sein?
 
Ich habe auf meinem Desire die App "Bluetooth File Transfair" installiert und gesehen, dass dort zumindest die Liste mit den
gefunden Bluetooth-Handys selbst gemacht wurde. So scheint es jedenfalls.
Kann mir wohl jemand sagen, wie man so was machen kann?

Ich dachte eine Liste der gefunden Geräte würde dir reichen. Aber das stimmt mann muss die Geräte schon vorher Koppeln, sonst ist nix mit Daten senden.

Sorry da bin ich überfragt. Sollte ich zufällig was finden denke ich an dich...

Gruß enrem
 
Once a connection is made with a remote device for the first time, a pairing request is automatically presented to the user. When a device is paired, the basic information about that device (such as the device name, class, and MAC address) is saved and can be read using the Bluetooth APIs. [...]
The current Android Bluetooth API's require devices to be paired before an RFCOMM connection can be established. (Pairing is automatically performed when you initiate an encrypted connection with the Bluetooth APIs.) [...]
Your RFCOMM connection attempt will block until the user has successfully paired, or will fail if the user rejects pairing, or if pairing fails or times out.
Von Bluetooth | Android Developers , hört sich für mich so an als würde das nicht einfach so gehen.
 
Ich habe mir "Bluetooth File Transfair" installiert. Stimmt ich konnte eine Verindung zum Handy ohne Paring aufbauen. Ich konnte auch angeblich eine Datei versenden. Aber auf dem Handy kann ich keine von meinen gesendeten Daten finden.

Wo legt "Bluetooth File Transfair" die beim Zielgerät ab?

Möglich das du bei diesem Protokoll nicht pairen muss. Wie du bereits gefunden hast, scheint es mit RFCOMM nur mit pairen zu gehen.

Gruß enrem
 
Hi enrem
Wo legt "Bluetooth File Transfair" die beim Zielgerät ab?
Das ist nicht Sache von BTF, sondern des Empfängers.
Wenn Du die Dateien an ein Handy sendest (pushst), entscheidet also das Handy über den Umgang mit der Datei und macht damit, was es für "richtig" hält. Für die Wahl des Speicherortes spielt für ein Handy die Dateiendung eine Rolle.
Es gibt also keinen Standard-Speicherort. Einfach mal suchen.

Möglich das du bei diesem Protokoll nicht pairen muss. Wie du bereits gefunden hast, scheint es mit RFCOMM nur mit pairen zu gehen.
Nein, das hast Du missverstanden.
Ich meinte, wenn man mit der Funktion
createRfcommSocketToServiceRecord()
einen Socket erstellt und damit dann die Verbindung aufbaut, gehts nicht (ohne Pairing).

Das Pairing ist Sache von L2CAP und hat mit RFCOMM nichts zu tun.
Ich denke, dass man mit Java oder nativem Code was machen kann.
Vielleicht müßte man mal in dem Bluetooth.apk Source-Code stöbern.
 
Es gibt also keinen Standard-Speicherort. Einfach mal suchen.

Das habe ich gemacht, allerdings nur auf der sdcard. Möglich das ich desshalb meine Test-Text-Datei nicht gefunden habe.

Wenn du eine Lösung finden solltest, poste das doch bitte hier. Es würden dir sicherlich einige Leute dankbar sein.

Gruß enrem
 

Ähnliche Themen

S
Antworten
33
Aufrufe
2.540
Sempervivum
S
B
Antworten
4
Aufrufe
432
bb321
B
S
Antworten
4
Aufrufe
4.132
mblaster4711
mblaster4711
Zurück
Oben Unten