La mia attività deve comunicare con un server java situato sulla mia macchina di sviluppo. In realtà, usando l'emulatore, posso accedere al socket del server tramite l'indirizzo speciale 10.0.2.2. Ora vorrei testare la mia app sul mio telefono collegato tramite usb, ma sembra che non possa più usare 10.0.2.2 per accedere al mio localhost della macchina di sviluppo. Naturalmente l'uso di un router wifi e un corretto indirizzamento della lan fa il trucco, ma ho bisogno di usare invece la connessione USB. Qualche suggerimento?Access dev machine localhost via usb
modificare:
appena aggiunto diversi scenari per consentire a tutti capire meglio:
1. emulatore basato su scenario:
- server di Java Standard in esecuzione sul mio pc @localhost: 15000
- client java android in esecuzione sul mio emulatore.
Quando l'applicazione Android deve contattare il server utilizza 10.0.2.2:15000 come specificato here. Tutto funziona bene.
2. scenario wifi corretta con dispositivo collegato fisico:
- server di Java Standard in esecuzione sul mio pc @ 192.168.1.10: 15000.
- client java android in esecuzione sul mio dispositivo con indirizzo 192.168.1.11 assegnato.
Quando l'app Android deve contattare il server utilizza 192.168.1.10:15000 e tutto funziona perfettamente.
3. scenario desiderato:
- server di Java Standard in esecuzione sul mio pc @localhost: 15000.
- client java android in esecuzione sul mio dispositivo collegato tramite cavo usb. Nessuna rete è attiva.
Quando l'app Android deve contattare il server tenta di connettersi a 10.0.2.2:15000 ma viene generata un'eccezione (Rete non raggiungibile). Sembra che l'indirizzo speciale 10.0.2.2 funzioni solo per le istanze dell'emulatore.
Mi chiedo solo se nella suite adb/adt esiste un modo per accedere all'indirizzo del pc dal dispositivo collegato tramite cavo USB. Spero che ora sia un po 'più chiaro. Grazie.
Non utilizzo alcuna porta in ascolto sul mio dispositivo. Il server è invece sulla mia macchina di sviluppo. Quindi, se IIRC, adb forward funziona in modo opposto (inoltra il numero di porte delle prese "di ascolto") e questo non è il caso. –
Sì, questo è quello che ho detto, non ero sicuro che la connessione dal tuo dispositivo al PC avrebbe funzionato. Scusate. – MrSnowflake
Questo può funzionare con un tunnel inverso attraverso il quale il telefono può tornare indietro. La maggior parte delle installazioni SSH sosterrebbero quella nostra casella. –