Ich habe ein Android-Gerät (Samsung Galaxy Tab) über USB an meinen PC angeschlossen.
Ich möchte WebServices verwenden und eine Webseite ausführen, die sich auf meinem lokalen xampp-Server meines PCs auf meinem Android-Gerät befindet.
Ich kann es erreichen, wenn beide, mein PC und mein Android-Gerät, im selben drahtlosen Netzwerk verbunden sind.
Es ist jedoch möglich, ohne drahtlose Verbindung nur über eine USB-Verbindung auf die localhost-Seite zuzugreifen.
(PS: Das gleiche Szenario funktioniert, wenn ich die App auf einem Emulator ausführe und die IP 10.0.2.2 verwende, um auf den lokalen Host auf meinem PC zuzugreifen.)
Antworten:
Ich habe dieses Problem endlich gelöst. Ich habe Samsung Galaxy S mit Froyo verwendet. Der "Port" unten ist derselbe Port, den Sie für den Emulator verwenden (10.0.2.2:port). Was ich getan habe:
http://192.168.x.x:port/test.php
Es sollte jetzt funktionieren.
quelle
Google veröffentlicht eine Lösung für diese Art von Problem hier .
Die Schritte:
3333
im linken Teil ein und geben Sie einlocalhost:5000
und klicken Sie auf Regel hinzufügen.quelle
chrome://inspect/#devices
Chrom ein und fahren Sie mit dem Portweiterleitungsschritt der Antwort fort.ERR_EMPTY_RESPONSE
wenn ich von Chrome auf dem Gerät zurückkomme ... bis mir schließlich klar wurde, dass ich meinen localhost-Server nicht auf meinem Desktop laufen ließ und nichts zu tun hatte tatsächlich verbinden mit! Doh! Startete den Server (in diesem Fall Apache) und alles begann sofort zu funktionieren. Ein wichtiger erster Schritt besteht darin, sicherzustellen, dass Ihr Zielserver tatsächlich ausgeführt wird, bevor Sie den Port Forward einrichten.Ich habe zahlreiche Foren gelesen und versucht, Apps abzuspielen, aber bis jetzt keine Lösung gefunden.
Mein Szenario ähnelt meines Erachtens Ihrem, aber ich werde es klarstellen, um anderen zu helfen. Ich habe eine lokal gehostete Website und Webdienste, die von meiner Android-Anwendung verwendet werden. Ich muss dies nur zur Demonstration mit meinem Laptop und ohne Netzwerkverbindung unterwegs haben.
Hinweis: Die Verwendung meines iPhones als WLAN-Hotspot und das Verbinden von PC und Android-Gerät hat funktioniert, aber die iPhone 4S-Verbindung ist langsam und wird regelmäßig unterbrochen.
Meine Lösung lautet wie folgt:
http://192.168.1.1/myWebSite
quelle
Hier ist ein Teil des Codes meiner Android-App:
Diese App kann mit einem HTTP-Get-Post-Modell zwischen einem Servlet, das auf einem Server ausgeführt wird, und einem Android-Gerät kommunizieren , das im USB-Debuggable-Modus angeschlossen ist ( da die App gerade entwickelt wird ).
Ich kann die App auch über WLAN ausführen, wenn der Server Tomcat Apache 7 ausgeführt wird ( wenn die App-Entwicklung abgeschlossen ist ).
Um Ihre IP-Adresse zu erhalten
ipconfig
In der Liste ist die IPv4-Adresse Ihre IP.
quelle
Ich habe das auf einem Windows-Computer gemacht und es hat perfekt funktioniert!
Aktivieren Sie USB Tethering in Ihrem Handy. Geben Sie ipconfig in die Eingabeaufforderung Ihres Computers ein und suchen Sie die IPv4 für "Ethernet Adapter Local Area Connection x" (meistens die erste). Gehen Sie nun zu Ihrem mobilen Browser und geben Sie diese IPv4 mit der Portnummer Ihrer Webanwendung ein. zB: - 192.168.40.142:1342
Mit diesen einfachen Schritten hat es funktioniert!
quelle
So greifen Sie einfach auf LocalHost in einem tatsächlichen Android-Gerät zu -> Verbinden Sie Ihren PC über USB mit dem Android-Gerät
Chrome Inspection Tool
Überprüfen Sie die Unterseite des Chromprüfwerkzeugs.
Gehen Sie nun zu den Einstellungen auf der Registerkarte Remote-Gerät.
Registerkarte Remote-Geräte
Aktivieren Sie die Option "USB-Gerät erkennen" sowie die Option "Portweiterleitung".
Klicken Sie nun auf Regeln hinzufügen, geben Sie einen beliebigen Geräteport ein, z. B. (4880), und geben Sie unter Lokale Adresse die tatsächliche Adresse des lokalen Hosts in meinem Fall ein, z. B. (127.0.0.1:480).
Nach dem Hinzufügen der Regel gehen Sie zu Ihrem Android Studio -> in Ihrer Code-URL ( http://127.0.0.1:4880 ). Denken Sie daran, den Port von 480 -> 4880 zu ändern.
Gehen Sie in Chrome zur Registerkarte Remote-Gerät und klicken Sie auf Ihr verbundenes Gerät. Neue URL hinzufügen (127.0.0.1:4880) Überprüfen Sie den Chrome-Browser für Android-Geräte
Überprüfen Sie Ihren Chrome-Browser für das tatsächliche Gerät und starten Sie das Debuggen des Codes auf dem tatsächlichen Android-Gerät.
quelle
Überprüfen Sie die Optionen für den USB-Verbindungstyp. Sie sollten einen namens "Internet Pass Through" haben. Dadurch kann Ihr Telefon dieselbe Verbindung wie Ihr PC verwenden.
quelle
Johns Antwort hat mir sehr gut gefallen, aber ich möchte sie mit einigen Änderungen an denen ändern, die eine // Client-Server-Konfiguration testen möchten, indem ein Client-TCP auf dem über USB angeschlossenen Mobiltelefon und ein Server auf dem lokalen PC ausgeführt werden.
Zunächst ist es ziemlich offensichtlich, dass 10.0.2.2 nicht funktioniert, da dies ein echtes Hardware-Handy und kein Simulator ist.
Befolgen Sie also Johns Anweisungen:
Schalten Sie das "USB Tethering" (USB-Modem / USB-Mobilfunkmodem / USB שימוש כמודם סלולרי) im Android-Menü ein. (Unter Netzwerke-> mehr ...-> Tethering und tragbarer Hotspot ")
Rufen Sie die IP Ihres PCs ab (die über das USB-Tether-Kabel zugewiesen wurde) (öffnen Sie die Eingabeaufforderung und geben Sie "ipconfig" ein. Suchen Sie dann nach der IP, die der USB-Netzwerkadapter zugewiesen hat, unter Linux
ifconfig
oder Ubuntus "Verbindungsinformationen" usw. ..)Weisen Sie die Anwendung an, eine Verbindung zu dieser IP (dh 192.168.42.87) mit etwas wie (Java - Client-Seite) herzustellen:
String serverIP = "192.168.42.87"; int serverPort = 5544; InetAddress serverAddress = InetAddress.getByName(serverIP); Socket socket = new Socket(serverAddress, serverPort); ...
Genießen..
quelle
Hallo, Sie können über auf Ihren xampp localhost zugreifen
quelle
Anschließen des Android-Telefons über ein USB-Kabel und Zugreifen auf den http-Server auf dem Computer.
Firewall - Schalten Sie es aus. Sobald alles funktioniert, können Sie unter Eingehende Regeln eine Regel hinzufügen, den Apache-HTTP-Server (UDP und TCP) (oder den von Ihnen verwendeten HTTP-Server) aktivieren. Warnung - Wenn Sie die Firewall ausschalten, wird Ihr Computer anfällig zu Internetangriffen. Schalten Sie also zuerst das Internet aus und trennen Sie sich vom Netzwerk. Sie müssen nicht im Internet sein, damit dies funktioniert, da Sie zwei Geräte im lokalen Netzwerk verbinden.
Stecken Sie das USB-Kabel ein. Wenn das Netzwerkfenster angezeigt wird, wählen Sie Heimnetzwerk. Wenn es nicht angezeigt wird, ist es wahrscheinlich auf Öffentlich eingestellt (was nicht funktioniert). Gehen Sie also zu: Systemsteuerung \ Netzwerk und Internet \ Netzwerk- und Freigabecenter (in Win7) und stellen Sie es dort auf Heimnetzwerk ein. Möglicherweise wird ein nächster Bildschirm angezeigt, nachdem Sie darauf gedrückt haben, um Bilder und Musik freizugeben. Klicken Sie einfach auf Abbrechen. Auf dem Hauptbildschirm ist das Heimnetzwerk weiterhin aktiv.
Sie benötigen die IP des Computers, localhost oder andere Aliase funktionieren nicht. Um die IP Ihres Computers abzurufen, starten Sie die Windows-Befehlszeilen-Shell (drücken Sie Windows-Taste + R und geben Sie cmd ein). Das schwarze Eingabeaufforderungsfenster sollte angezeigt werden. Geben Sie Folgendes ein: "ipconfig" und drücken Sie die Eingabetaste. Nun suchen Sie nach
IPv4-Adresse. . . . . . . . . . . : 192.168. ###. ### Dies ist die IP, die Ihr Telefon Ihrem Computer zugewiesen hat
Nun sollten Sie im Browser des Telefons versuchen, auf eine Test-HTML-Datei vom Server Ihres Computers zuzugreifen, die einwandfrei angezeigt werden soll.
Jetzt, da alles funktioniert, möchten Sie wahrscheinlich die Firewall und den Internetzugang auf Ihrem Computer aktivieren. Versuchen Sie nun erneut, auf Ihren http-Server zuzugreifen. Es wird wahrscheinlich nicht funktionieren. Abhängig von Ihrem Setup wird möglicherweise ein Popup angezeigt, in dem Sie aufgefordert werden, eine Regel hinzuzufügen, um dies zuzulassen. Wenn Sie dies nicht tun, fügen Sie sie einfach selbst hinzu. Starten Sie die Windows-Firewall, gehen Sie zu Eingehende Regeln (da es sich um einen Server handelt) und fügen Sie eine neue Regel hinzu. Wählen Sie "Programm". Suchen Sie die Exe Ihres http-Servers und stellen Sie im nächsten Bildschirm sicher, dass Zulassen ausgewählt ist. Versuchen Sie erneut, eine Verbindung herzustellen, und jetzt sollte es funktionieren. Wenn nicht, liegt es wahrscheinlich daran, dass Sie eine falsche Exe ausgewählt haben. Sie können sogar noch weiter gehen, um die Nutzung von außen einzuschränken (da jetzt jeder im Internet darauf zugreifen kann, wenn er Ihre Internet-IP-Adresse hat). Um den Zugriff einzuschränken, können Sie mit der rechten Maustaste auf die neue Regel klicken, die Sie gerade erstellt haben.
Hinweis für Android-Entwickler, jetzt in Ihrem Android-Code müssen Sie "http: //" verwenden, sonst funktioniert es nicht. Zum Beispiel: MyAsyncTask.execute ("http://192.168.123.123/test.html")
Teil II - IP auf fest / statisch einstellen.
Jetzt, da die Dinge funktionieren, ändert sich Ihre IP jedes Mal, wenn Sie das Kabel abziehen und wieder einstecken. Und wenn Sie es irgendwo wie in einem Code verwenden, müssen Sie es jedes Mal aktualisieren! Die Lösung, die ich mir ausgedacht habe, besteht darin, die IP auf statisch zu setzen.
Diese IP-Adresse ist Ihre neue feste / statische IP-Adresse und bleibt beim nächsten Anschließen des Telefons unverändert.
quelle
adb devices
.Dies funktioniert unter Windows und Ubuntu Linux und sollte auch unter Mac funktionieren.
quelle