Python Bluetooth-gewusst wie: senden einer Datei an ein Telefon
in meinem aktuellen Projekt ist es eine Anforderung zum senden einer Datei von einem windows-computer auf einem android-Gerät über bluetooth, ohne das etwas auf dem anderen Telefon als standard-Zustand und natürlich einem gekoppelten bluetooth-Verbindung. ich habe nach über pybluez und es schien einfach genug, um das senden von Dateien zwischen einem client und-server-Architektur (und in der Tat bekam Sie das senden zwischen meinem laptop und desktop eher schnell), aber ich kann nicht für das Leben von mir finden, jeder Weg, um python-senden Sie eine Datei vom computer auf android, sobald die Verbindung hergestellt ist; meine versuche haben wurden greifen die bluetooth-mac-Adresse wie die Sache aus dem Gerät, wie so
nearby_devices = bluetooth.discover_devices(
duration=8, lookup_names=True, flush_cache=True, lookup_class=False)
und dann später zu senden versuchen, die Dateien so wie
port = 1
for addr, name in nearby_devices:
bd_addr = addr
sock=bluetooth.BluetoothSocket( bluetooth.RFCOMM )
sock.connect((bd_addr, port))
sock.send("download-app")
sock.close()
Natürlich mit dem Beispiel-Skript gegeben durch die pybluez Dokumentation kann ich nahtlos das senden von Dateien zwischen einem client und einem server, aber ich bin immer noch stecken, ohne einen Weg, um eine Datei zu senden, um die ausgewählte android-Gerät (auch wenn ich geben Sie die Adresse und wissen, dass es innerhalb der Reichweite)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du bist auf dem besten Weg dorthin...
Wie Sie wissen, Sie brauchen etwas zu sprechen, um am anderen Ende der Bluetooth-Verbindung. Sie brauchen nur zu ersetzen Ihre custom-server mit einem bekannten service (in der Regel eine von diese Optionen).
In meinem Fall, mein Handy unterstützt das "OBEX Object Push" - service, so dass ich nur eine Verbindung herstellen müssen, und verwenden Sie eine geeignete client-to-talk, das richtige Protokoll. Zum Glück, die Kombination von PyOBEX und PyBluez funktioniert der trick hier!
Den folgenden code (schnell zusammengeflickt aus PyOBEX und PyBluez Proben) läuft auf meinem Windows 10, Python 2.7 installation und erstellt eine einfache text-Datei auf dem Handy.
Sieht aus wie PyOBEX ist ein ziemlich minimal, Paket, obwohl, und ist nicht Python 3 kompatibel, so dass Sie kann ein wenig die Portierung zu tun, wenn das ist eine Voraussetzung.
Habe ich noch nicht persönlich erkundet, aber schauen Sie sich dieses blog -
http://recolog.blogspot.com/2013/07/transferring-files-via-bluetooth-using.html
Verwendet der Autor das hellblaue Paket eine API für das Obex-Protokoll und senden von Dateien über die Verbindung. Jetzt ist das hellblaue Paket scheint nicht mehr gepflegt. Es gibt andere Pakete, wie PyObex (die konnte ich nicht importieren, aus welchem Grund auch immer), die Sie auch untersuchen, wie alternativen, die aber hellblau scheint der Weg zu gehen.