Wie kann ich das initiieren eines Android-zu-PC HTTP-Anforderung über USB?
Dies wurde vor der Frage, aber nicht erhalten eine zufriedenstellende Antwort.
Von meinem Android-Anwendung, die ich brauche, um das senden einer HTTP-Anfrage an einen PC angeschlossen über USB. In der Regel, die Kommunikation mit ADB in eine Richtung, vom PC auf Android.
Wie bereits in den Antworten zu den oben genannten duplizieren, dies getan wurde, vor: Android-Usb-Port-Forwarding. Wenn ich wirklich brauchte, konnte ich laden Sie einfach diese app und Murks, aber ich würde viel lieber zu implementieren, diese in meiner eigenen app.
Irgendwelche Ideen?
- Würde tut Sie es über das internet lösen, Ihr Ziel? Nur aus Neugier, was meinst du mit "pfusch"?
- Es wäre aber nicht ideal für mehrere Gründe. Wäre ein Murks wie-Anwender zum download und konfigurieren Sie zusätzliche apps.
- prüfen Sie, ob dies hilft Ihnen, superuser.com/questions/425967/.... Hinterlassen Sie Kommentare, wenn Sie benötigen etwas mehr Hilfe auf diesem.
- Danke, aber wie gesagt, ich kann mich nicht darauf verlassen, dass eine internet-Verbindung. Werden muss über USB.
- Warum muss es denn unbedingt http sein? Und wenn ja, warum nicht über das Netzwerk? Mir scheint, dass der Fall für Ihre app muss sehr einzigartig?
- Ich nehme an, es muss nicht sein HTTP hinter den kulissen. Nicht verwenden können, Netzwerk, obwohl (WiFi oder Mobilfunk), da keine verfügbar sind. Ich denke, das ist ziemlich einzigartig.
- Also, deine Frage bezieht sich nur auf "Wie kommuniziere ich mit dem Gerät über USB", was bedeutet, können Sie verwenden: developer.android.com/guide/topics/usb/index.html
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es nicht eigentlich die Kommunikation ist eine Möglichkeit, aber die Fähigkeit verbindungen initiieren.
Tun Sie dies mit der standard-android-Funktionalität, werden Sie konzeptionell haben einen tunnel in das Gerät initiiert die Verbindung über ein vorhandenes PC-Verbindung initiiert. Zum Beispiel mit off-the-shelf-tools:
Sie eigentlich nicht haben, um SSH benutzen, es ist nur, dass diese Pakete bis die Stücke fertig zum Gebrauch.
Als eine alternative Idee, einige Android-Geräte, die USB-tethering unterstützen, bieten mobile Netzwerk-service PC-implizit am Ende die Schaffung eines bidirektionalen IP-Netzwerk über das usb-Kabel, die Sie verwenden können, für andere Zwecke. Aber seien Sie sehr vorsichtig, dass Sie nicht versehentlich die Weiterleitung aller PC-Netzwerk-traffic über das Handy.
Wenn das Android-Telefon unterstützt das USB-tethering:
Nun ein web-server läuft auf dem PC gesendet werden können HTTP-Anfragen mit dieser Einstellung.
USB-es ist immer der host (der PC in deinem Fall) initiiert die Kommunikation. So müssen Sie mit tricks zu erscheinen, dass das Android-Gerät sendet eine Anforderung. Der PC könnte in regelmäßigen Abständen Umfrage Android (sagen alle 100 ms), wenn Sie eine HTTP-Anforderung anhängig ist und sammeln Sie dementsprechend ähnlich zu dem, was jackbot haben. Ich denke, das ist, was Android-auf-USB-Port-Forwarding hast.
Sollte es möglich sein, verwenden Sie USB-tethering für diesen Zweck. Wenn Sie starten Sie " USB-tethering für Ihren PC auf Android-Gerät dann PC und Android wurde im selben lokalen Netzwerk. Es ermöglicht den Zugriff auf PC (z.B. test-http-server) über HTTP.
Kann man leider nicht senden von HTTP-requests über einen lokalen socket z.B. /dev/tty... oder ähnliches. Standardmäßig, die android-Gerät, wenn es erwirbt eine IP-Adresse, getan haben, also über DHCP oder eine statische IP, die Sie eingestellt haben. Was Sie würden tun müssen, ist wissen, die IP-Adresse des desktop-Computers.
Was sind Sie eigentlich versucht zu erreichen? Mit der Anwendung senden Sie eine Anfrage an localhost, das würde die relais auf dem PC?
Diese Antwort kann helfen "finden Sie die ip-desktop über usb-tethering"