Come posso collegarmi ad Android con ADB su TCP? [chiuso]


879

Sto tentando di eseguire il debug di un'applicazione su un Motorola Droid , ma ho qualche difficoltà a collegarmi al dispositivo tramite USB. Il mio server di sviluppo è una macchina virtuale Windows 7 a 64 bit in esecuzione su Hyper-V , quindi non riesco a collegarmi direttamente tramite USB nel guest o dall'host.

Ho installato un paio di diverse soluzioni USB-over-TCP, ma la connessione sembra avere problemi poiché il monitor ADB riporta "devicemonitor non è riuscito ad avviare il monitoraggio" ripetutamente. Esiste un modo per connettersi direttamente dal client sulla macchina di sviluppo al demone sul dispositivo utilizzando la rete anziché la connessione USB o forse un'altra opzione praticabile?


75
Quando è collegato via USB: adb tcpip 5555. Disconnetti USB, visualizza IP del telefono da Settings > About Phone > Status. Ora adb connect 192.168.x.xe basta. Nessuno strumento, nessun software. Funziona e basta.
andreszs,

1
Quello che Andrew ha detto: queste sono le istruzioni ufficiali dal sito web degli sviluppatori Android di Google , nessuna radice necessaria. Ho appena lavorato sul mio HTC One m8 non rootato (ovviamente richiede l'abilitazione delle opzioni per gli sviluppatori).
Jeff Ward,

Se il servizio adb viene eseguito sulla porta 5037, perché individua i dispositivi nell'intervallo da 5555 a 5585?
Shivam Aggarwal,

@Andrew Potrei usare un'app come questa per aprire e chiudere la porta senza un computer su un Nexus 6 senza accesso root? Sono preoccupato per i problemi di sicurezza che potrebbero derivare dal lasciare la porta 5555 aperta quando sono su una rete pubblica e non utilizzo il telefono per lo sviluppo.
DaveTheMinion,

Risposte:


1205

Processo manuale

Dal tuo dispositivo, se è rootato

Secondo un post sugli sviluppatori xda , è possibile abilitare ADB tramite Wi-Fi dal dispositivo con i comandi:

su
setprop service.adb.tcp.port 5555
stop adbd
start adbd

E puoi disabilitarlo e riportare ADB in ascolto su USB con

setprop service.adb.tcp.port -1
stop adbd
start adbd

Da un computer, se si dispone già dell'accesso USB (non è richiesto il root)

È ancora più semplice passare all'utilizzo del Wi-Fi, se si dispone già di USB. Da una riga di comando sul computer in cui è collegato il dispositivo tramite USB, immettere i comandi

adb tcpip 5555
adb connect 192.168.0.101:5555

Assicurati di sostituire 192.168.0.101con l'indirizzo IP che è effettivamente assegnato al tuo dispositivo. Al termine, è possibile disconnettersi dalla sessione adb tcp eseguendo:

adb disconnect 192.168.0.101:5555

Puoi trovare l'indirizzo IP di un tablet in due modi:

Rilevamento IP manuale:

Vai nelle impostazioni WiFi di Android, fai clic sul pulsante menu nella barra delle azioni (i puntini di sospensione verticali), premi Avanzate e visualizza l'indirizzo IP nella parte inferiore dello schermo.

Usa ADB per scoprire l'IP:

Eseguire il comando seguente tramite adb:

adb shell ip -f inet addr show wlan0

Per dire al demone ADB tornare ad ascoltare tramite USB

adb usb

App per automatizzare il processo

Esistono anche diverse app su Google Play che automatizzano questo processo. Una rapida ricerca suggerisce adbWireless , WiFi ADB e ADB WiFi . Tutti questi richiedono l'accesso come root, ma adbWireless richiede meno autorizzazioni.


3
Hai bisogno dell'accesso root per farlo? Mi sembra di essere in grado di eseguire i comandi utilizzando il terminale, ma in realtà non sembra funzionare ...
JJ

6
@ JJ - Sfortunatamente sì. Root richiesto.
Kingsolmn,

178
Per la seconda soluzione ( adb tcipip 5555e adb connect ...non è necessario il root.
Ridcully,

11
adb tcpip <port>richiede ancora che sia ro.kernel.qemuimpostata la proprietà (in esecuzione in modalità emulatore), ro.secureche sia 0 (cioè un dispositivo rooted) o ro.debuggableche service.adb.rootsia impostata su 1. adbdsemplicemente non aprirà una connessione TCP / IP se nessuna delle precedenti è soddisfatta. Vedere netmite.com/android/mydroid/system/core/adb/adb.c adb_main parti relative alla securevariabile. adbdsul mio non root 2.3.7 Android non accede affatto alla modalità TCP / IP.
soulseekah,

2
Grande! La seconda soluzione in realtà non richiede root!
Grzegorz D.

132

Questo è davvero semplice se il tuo telefono è rootato.

Scarica un emulatore di terminale da Google Play (ce ne sono molti che sono gratuiti). Assicurati che il tuo dispositivo Android sia connesso al tuo Wi-Fi e ottieni l' indirizzo IP Wi-Fi . Apri il programma terminale e digita:

su
setprop service.adb.tcp.port 5555
stop adbd
start adbd

Ora vai sul tuo computer (supponendo che tu stia utilizzando Windows) e crea un collegamento sul desktop per "cmd.exe" (senza virgolette).

Fare clic con il tasto destro sul collegamento cmd e scegliere "Run as Administrator"

Passa alla tua android-sdk-windows\toolscartella

Genere:

adb connect ***wifi.ip.address***:5555

(example: adb connect 192.168.0.105:5555)

adb ora dovrebbe dire che sei connesso.

Nota: se sei troppo veloce per dare il comando connect potrebbe non riuscire. Quindi prova almeno due volte a cinque secondi di distanza prima di dire che non funziona.


6
Questa risposta è stata migliore per me perché ha spiegato quale parte deve essere eseguita sul dispositivo e quale sul computer.
Eduardo,

5
PRIMA di "adb tcpip 5555" DO "adb kill-server". DOPO "adb connect 192.168.0.101:5555" DO "adb devices" OPPURE "adb shell" (connect non avvia la shell).
Samis,

Ho provato adb tcpip 5555e poi l'altra persona eseguita adb connect myIP:5555sul proprio PC. Poteva installare un'app sul mio telefono ma non poteva eseguire il debug in remoto. È possibile eseguire il debug in remoto? Sul mio telefono c'è stata una finestra di dialogo waiting for debuggerper sempre.
Angelina,

Questo rende le impostazioni persistenti al riavvio?
Hritik,

Funziona con l'indirizzo ipv6 tramite Internet mobile?
Captain Freedom,

94
  1. Connetti il ​​dispositivo tramite USB e assicurati che il debug funzioni, quindi esegui:

    adb tcpip 5555
    adb connect <DEVICE_IP_ADDRESS>:5555
  2. Disconnetti USB e procedi con il debug wireless.

  3. Al termine e desideri tornare al debug USB, esegui:

    adb -s <DEVICE_IP_ADDRESS>:5555

Per trovare l'indirizzo IP del tuo dispositivo, vai Settings > Wi-Fi > Advanced > IP Addresssul tuo dispositivo o esegui adb shell netcfg.

Nessuna radice richiesta. È possibile eseguire il debug di un solo dispositivo alla volta.

Vedi questo post XDA .

Il adbcomando si trova nella platform-toolscartella dell'SDK Android.


2
In realtà, puoi connettere molti dispositivi alla volta, se segui il giusto ordine. Basta impostare tcpip su 5555 singolarmente per ciascun telefono, quindi emettere il comando di connessione per ciascun telefono e voilá, sono tutti collegati ad adb.
andreszs,

Il debug è un po 'più lento se il mio telefono è collegato in questo modo. Inoltre, a volte si addormenta e ciò provoca una disconnessione immediata.
Aron Lorincz,

Su alcuni dispositivi, il ritardo tra il comando adb tcpip e il comando adb connect deve essere molto basso, altrimenti non funziona. Inoltre, per me ha funzionato facendoadb tcpip 5555 && adb connect <DEVICE_IP_ADDRESS>:5555
Vhamon il

61

Supponiamo di aver salvato il percorso adb nel percorso dell'ambiente Windows

  1. Attiva la modalità debug in Android

  2. Connessione al PC tramite USB

  3. Apri il prompt dei comandi: adb tcpip 5555

  4. Scollega il tablet o lo smartphone dal PC

  5. Apri il tipo di prompt dei comandi: adb connect IPADDRESS(IPADDRESS è l'indirizzo DHCP / IP del tuo tablet o smartphone, che puoi trovare tramite Wi-Fi -> rete attualmente connessa)

Ora nel prompt dei comandi dovresti vedere il risultato come: connesso a xxx.xxx.xxx.xxx:5555


Grazie per la sequenza di passaggi e menzionando esattamente quando disconnettere il PC.
Manju,

53

Da adb --help:

connect <host>:<port>         - Connect to a device via TCP/IP

Questa è un'opzione da riga di comando.

Dovresti provare a connettere il telefono al tuo Wi-Fi e quindi ottenere il suo indirizzo IP dal tuo router. Non funzionerà sulla rete cellulare.

Il porto è 5554.


1
Ci avevo provato con 5555-5558 e ora 5554 e per qualche motivo non funziona. Fondamentalmente da una riga di comando: adb kill-server adb connect 10.10.10.100:5554 con il risultato che * daemon non è in esecuzione. avviandolo ora * * il demone è stato avviato correttamente * impossibile connettersi a 10.10.10.100:5554 Posso eseguire il ping dell'ip del dispositivo dalla workstation di sviluppo. Quando l'output indica "daemon avviato correttamente" non dovrebbe fare riferimento al demone sul dispositivo? Sta forse tentando di usare l'emulatore? Come posso garantire / convalidare il daemon in esecuzione sul dispositivo? grazie
JDM

2
dovresti prima adb tcpip portcome impostazione predefinita è il debug tramite USB. Dopo quest'ultimo è possibile connettersi connect host:porte dovrebbe funzionare
Aiden Strydom

"adb tcpip port" letteralmente? che restituisce solo la stringa "errore: dispositivo non trovato" - c'è un errore di battitura? O dovrei sostituire qualcosa qui?
BrainSlugs83

3
AHHH !! Capito, il numero di porta predefinito per CyanogenMod è 5555! SIMPATICO. : D
BrainSlugs83

@Michael potrebbe funzionare su alcune reti cellulari, ma le loro configurazioni di rete sono fondamentalmente scatole nere - non sai quando / se sei dietro un firewall, se le porte sono bloccate, se è in corso la traduzione NAT, ecc.
BrainSlugs83

45

Per utenti Windows:

Passaggio 1:
devi abilitare le opzioni sviluppatore nel tuo telefono Android.
Puoi abilitare le opzioni per gli sviluppatori in questo modo.
• Apri Impostazioni> Informazioni su> Informazioni sul software> Altro.
• Quindi toccare "Numero build" sette volte per abilitare le opzioni sviluppatore.
• Torna al menu Impostazioni e ora potrai vedere "Opzioni sviluppatore" lì.
• Toccalo e attiva il debug USB dal menu nella schermata successiva.

Passo 2:

Apri cmd e digita adb.
se trovi che adb non è un comando valido, devi aggiungere un percorso alla variabile d'ambiente.

• Prima vai alla cartella SDK installata
Segui questo percorso e questo percorso è solo per un esempio. D: \ software \ Sviluppo \ Andoird \ SDK \ sdk \ platform-tools \; D: \ software \ Sviluppo \ Andoird \ SDK \ SDK \ tools;
• Ora cerca nelle impostazioni avanzate del sistema Windows

inserisci qui la descrizione dell'immagine

Apri la variabile d'ambiente.

inserisci qui la descrizione dell'immagine

quindi apri il percorso e incolla il seguente percorso, questo è un esempio.
Il tuo percorso SDK è diverso dal mio, utilizza il tuo. D: \ software \ Sviluppo \ Andoird \ SDK \ sdk \ platform-tools \;
D: \ software \ Sviluppo \ Andoird \ SDK \ SDK \ tools;

inserisci qui la descrizione dell'immagine

Passaggio 3:

Apri cmd e digita adb. se vedi ancora che adb non è un comando valido, il tuo percorso non è stato impostato correttamente segui i passaggi precedenti.

inserisci qui la descrizione dell'immagine

Ora puoi collegare il tuo telefono Android al PC.

Apri cmd e digita i dispositivi adb e puoi vedere il tuo dispositivo. Trova il tuo indirizzo IP del telefono.

inserisci qui la descrizione dell'immagine

Digitare: - adb tcpip 5555

inserisci qui la descrizione dell'immagine

Ottieni l'indirizzo IP del tuo telefono

adb shell netcfg

Adesso,

adb connect "IP address of your phone"

Ora esegui il tuo progetto Android e se non vedi il tuo dispositivo, digita nuovamente adb connect l'indirizzo IP del tuo telefono

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

Per utenti Linux e macOS :

Passaggio 1: apri il terminale e installa adb usando

sudo apt-get installa android-tools-adb android-tools-fastboot

Collega il tuo telefono tramite cavo USB al PC. Digitare il seguente comando nel terminale

adb tcpip 5555

Usando adb, collega il tuo indirizzo IP del telefono Android.

Rimuovi il tuo telefono.


36

Da un computer su un dispositivo non rootato

(Nota che questo può essere fatto anche usando un dispositivo rootato, ma puoi usare una shell su un dispositivo rooted che non richiede una connessione USB)

Innanzitutto, aprire il prompt dei comandi (CMD). Se usi Android Studio o IntelliJ c'è una console inclusa che puoi usare.

Se hai aggiunto adb al percorso, puoi saltare la parte cd.


Se possibile, aprire la posizione dell'SDK, fare clic con il pulsante destro del mouse e premere "Avvia prompt dei comandi qui". Non tutti hanno questa opzione, quindi è necessario eseguire anche questi (/ questi) comandi:

Windows: cambia l'unità (se applicabile)

D: 

E accedi agli strumenti sdk e della piattaforma. Sostituisci questo percorso con la posizione del tuo SDK:

cd /sdk/path/here/platform-tools

Ora hai accesso al bridge di debug Android.


Con il dispositivo collegato al computer, eseguire:

adb tcpip <port> 
adb connect <ip>:<port>

Dov'è <port>la porta a cui si desidera connettersi (l'impostazione predefinita è 5555) ed <ip>è l'IP del dispositivo a cui si desidera connettersi.

Nota: 5555è la porta predefinita e solo scrivendo l'indirizzo IP la collega. Se usi una porta personalizzata puoi almeno migliorare un po 'la sicurezza. È possibile abusare del debug USB tramite Wi-Fi, ma solo se il dispositivo è collegato al computer che desidera abusare del dispositivo. L'uso di una porta non predefinita rende almeno un po 'più difficile la connessione.

Se si utilizza una porta personalizzata, assicurarsi di aggiungerla dopo l'IP. La scrittura di nessuna porta si connette a 5555e se non è stato utilizzato, la connessione fallirà.

Puoi trovare l'indirizzo IP di un dispositivo in due modi:

  • A seconda del dispositivo, i nomi esatti possono variare. Apri le impostazioni e vai su Informazioni sul dispositivo -> Stato -> Indirizzo IP

  • Utilizzare ADB per ottenere l'IP

Dalla console, eseguire:

adb shell ip -f inet addr show wlan0

E una volta terminata la connessione, è possibile disconnettere il dispositivo dal computer facendo:

adb disconnect <ip>:<port>

O nessun IP per disconnettere tutti i dispositivi. Se hai utilizzato una porta personalizzata, devi specificare da quale porta disconnetterti . Anche qui l'impostazione predefinita è 5555.

Per disabilitare la porta (se è qualcosa che vuoi fare) fai questo comando con il dispositivo collegato:

adb usb

In alternativa, è possibile riavviare il dispositivo per rimuovere la connessione tcpip

Da un computer su un dispositivo rooted

Innanzitutto, è necessario accedere alla shell. Puoi connettere il dispositivo tramite un cavo USB e utilizzare adb shello scaricare un'app da Google Play, FDroid o un'altra fonte.

Quindi fai:

su
setprop service.adb.tcp.port <port>
stop adbd
start adbd

E per connettere il dispositivo, fai come nella versione non rootata adb connect <ip>:<port>.

E se vuoi disabilitare la porta e tornare all'ascolto USB:

setprop service.adb.tcp.port -1
stop adbd
start adbd

Puoi anche utilizzare un plug-in Android Studio per farlo per te (non ricordare il nome in questo momento), e per gli utenti rootati c'è anche la possibilità di scaricare un'app Android per impostare la connessione telefonica (probabilmente è ancora necessaria la connessione adb ).

Alcuni telefoni hanno un'impostazione nelle opzioni sviluppatore (questo vale per alcuni telefoni non root, anche se probabilmente anche alcuni telefoni root) che consente di attivare ADB tramite Wi-Fi dal dispositivo stesso senza root o una connessione al computer per avviarlo. Anche se ci sono pochi telefoni che hanno questo


adb shell ip -f inet addr show wlan0 L'indirizzo IP e il supporto delle porte devono essere sostituiti in qualche luogo?
Michael,

non in quella linea. Questo è il modo shell per ottenere l'IP. Niente di ciò che c'è dentro dovrebbe essere sostituito in quella riga
Zoe,

33

Avevo bisogno di far funzionare sia USB che TCPIP per ADB (non chiedere), quindi ho fatto quanto segue (usando le indicazioni che altri hanno pubblicato da sviluppatori xda)

Utilizzando adb shell:

su
#Set the port number for adbd
setprop service.adb.tcp.port 5555

#Run the adbd daemon *again* instead of doing stop/start, so there
#are two instances of adbd running.
adbd &

#Set the port back to USB, so the next time ADB is started it's
#on USB again.
setprop service.adb.tcp.port -1

exit

Non funziona: adbd non trovato. normalmente adbd viene avviato tramite start adbd. Ma forse c'è uno script / eseguibile in qualche cartella?
KrisWebDev,

1
Sul mio gnex, lo è /sbin/adbd. Ciò può variare a seconda del telefono. Certo, devi essere rootato ... Se non sei rootato, non sarai in grado di accedere a / sbin.
transistor1

32

Per connettere il tablet tramite la porta TCP. Assicurarsi che il sistema e il dispositivo siano connessi alla stessa rete.

  1. Apri console cmd.exe
  2. genere adb tcpip 5555
  3. Vai su Sistema -> Opzione di sviluppo -> Debug USB -> Deseleziona per la connessione TCPIP
  4. Digita adb connect 192.168.1.2questo è l'indirizzo IP del tuo dispositivo
  5. Collegato a 192.168.1.2

Connesso usando il port forward Prova a fare il port forwarding,

adb forward tcp: <PC port>tcp:<device port>

piace:

adb forward tcp: 5555 tcp: 5555.

C: \ Users \ abc> adb forward tcp: 7612 tcp: 7612

C: \ Users \ abc> adb tcpip 7612 riavvio nella porta in modalità TCP: 7612

C: \ Users \ abc> adb connect 10.0.0.1:7612

collegato a 10.0.0.1:7612

Se viene visualizzato un messaggio di errore: dispositivo non trovato, collegare un dispositivo USB al sistema, quindi seguire la stessa procedura.
per un dispositivo rootato

setprop service.adb.tcp.port 5555
stop adbd
start adbd

2
Nella console scrivi suprima per ottenere una console rooted.
Grim

30

Non so come connettere il dispositivo senza alcuna connessione USB, ma se riesci a connetterlo forse su un altro computer puoi passare adbd in modalità TCP emettendo

adb tcpip <port>

da un terminale e connettersi al dispositivo tramite Wi-Fi da qualsiasi PC della rete:

adb connect <ip>:<port>

Forse è anche possibile passare alla modalità TCP da un terminale sul dispositivo.


Di tutte le risposte complicate che hanno ricevuto enormi voti, questo bambino di 8 anni risponde alle sue domande più semplici e non richiede alcun rooting. Digita "adb connect <ip>: 5555" e sarà disponibile per la distribuzione.
RogerW,

29

Innanzitutto è necessario collegare il dispositivo tramite USB

Quindi collegare il dispositivo al WIFI e ottenere l'indirizzo IP. Mentre continui a connetterti tramite USB, digita questo nella riga di comando o tramite Android Studio Terminal

adb tcpip 5555
adb connect <device IP>:5555

Vedrai questi messaggi:

restarting in TCP mode port: 5555
connected to 172.11.0.16:5555

Ora rimuovi il cavo USB e vedrai ancora il tuo logcat normalmente

Fatto. Godere


Questo ha funzionato. Però. Dopo aver eseguito questi passaggi, non posso più tornare all'emulatore. Suggerimenti?
Tim Scott,

Devi riavviare il tuo adb con: <adb kill-server> e poi <adb start-server>
Joolah,

21

Se desideri connettere facilmente il tuo dispositivo per eseguire, eseguire il debug o distribuire le tue app Android tramite WiFi, puoi utilizzare un plug-in IntelliJ open source che ho sviluppato. Ecco il codice e qui il plugin pronto per essere utilizzato.

L'uso è abbastanza semplice. Ecco una gif:

inserisci qui la descrizione dell'immagine


Questo errore si verifica: "'adb'command non trovato. Rivedi l'installazione di Android SDK.
rostamiani,

1
Devi dichiarare una variabile di ambiente con nome ANDROID_HOME. Ma ho una PR in attesa di revisione per evitarlo. Con la versione 1.2 pubblicherò la prossima settimana il plugin funzionerà solo con IntelliJ installato :)
Pedro Vicente Gómez Sánchez,

Sto usando Mac, non vedi un'icona in AS? Devo prima fare qualcosa di manuale?
powder366,

1
Ho già pubblicato una nuova versione in cui la variabile d'ambiente ANDROID_HOME non è più necessaria. @ powder366 è necessario installare il plug-in dall'archivio plug-in IntelliJ per installarlo manualmente. Tutte le istruzioni necessarie per installare e utilizzare il plugin sono nel file Leggimi del progetto, dai un'occhiata a github.com/pedrovgs/AndroidWiFiADB
Pedro Vicente Gómez Sánchez,

@ PedroVicenteGómezSánchez Grazie. Ho scelto il plugin sbagliato, esiste un altro plugin con un nome simile ...
powder366

11

Come ha detto Brian:

Secondo un post sugli sviluppatori xda, è possibile abilitare ADB su WiFi dal dispositivo con i comandi

setprop service.adb.tcp.port 5555

smettere di adbd

avvia adbd

E puoi disabilitarlo e riportare ADB in ascolto su USB con

setprop service.adb.tcp.port -1

smettere di adbd

avvia adbd

Se disponi già dell'accesso USB, è ancora più semplice passare all'utilizzo del WiFi. Da una riga di comando sul computer in cui è collegato il dispositivo tramite USB, immettere i comandi

adb tcpip 5555

adb connect 192.168.0.101:5555

Per dire al demone ADB tornare ad ascoltare tramite USB

adb usb

Esistono anche diverse app su Android Market che automatizzano questo processo.

Funziona Devi solo accedere alla shell Android e digitare quei comandi ...

Un'altra soluzione (più semplice) è sul mercato: adbWireless, imposterà automaticamente il tuo telefono.

È necessario il root! per entrambi...


2
... ma solo se il telefono è rootato.
android.weasel,

Asus Transformer 301 - Lavorare senza root richiesto
Aiden Strydom,

9
adb tcpip 5555

Strano, ma questo funziona solo per me se ho il cavo USB collegato, quindi posso scollegare l'USB e provarlo con tutto il resto adb.

e lo stesso quando si ritorna su usb,

adb usb

funzionerà solo se usb è collegato.

Non importa se rilascio il

setprop service.adb.tcp.port 5555

o

setprop service.adb.tcp.port -1

quindi fermati e avvia adbd, ho ancora bisogno del cavo USB o non funziona.

Quindi, se il mio ADB su USB non funzionasse, scommetto che non sarei in grado di abilitare ADB su WiFi.


8

Per passare tra le modalità TCP e USB con un solo comando, è possibile aggiungere questo a /init.rc:

on property:service.adb.tcp.port=*
    restart adbd

on property:service.adb.tcp.enable=1
    setprop service.adb.tcp.port 5555

on property:service.adb.tcp.enable=0
    setprop service.adb.tcp.port -1

E ora puoi usare la proprietà service.adb.tcp.enableper abilitare o disabilitare l'ascolto sulla porta 5555. Esegui netstatper verificare se è in ascolto. Come puoi vedere, si attiverà anche se desideri cambiare service.adb.tcp.portmanualmente.


8

Funzione util di Bash:

function adb-connect-to-wifi {
    ip="$(adb shell ip route | awk '{print $9}')"
    port=5555
    adb tcpip ${port}
    adb connect ${ip}:${port}
}

7

PASSO 1.

Assicurarsi che sia il computer ospite adb e dispositivo Android sono sulla stessa rete Wi-Fi.

PASSO 2.

Collega il dispositivo Android al computer utilizzando il cavo USB. Non appena lo fai, il tuo computer host rileverà il tuo dispositivo e adb inizierà a funzionare in modalità USB sul computer. Puoi controllare i dispositivi collegati con adb devicesmentre assicurati che adb sia in esecuzione in modalità USB eseguendo adb usb.

$ adb usb
restarting in USB mode
$ adb devices
List of devices attached
ZX1D63HX9R  device


PASSAGGIO 3.

Riavvia adb in modalità tcpip con questo comando:

$ adb tcpip 5556
restarting in TCP mode port: 5556


PASSAGGIO 4.

Scopri l'indirizzo IP del dispositivo Android. Esistono diversi modi per farlo:

  • MODO: 1 Vai su Impostazioni -> Informazioni su telefono / tablet -> Stato -> Indirizzo IP.
  • MODO: 2 Vai all'elenco delle reti Wi-Fi disponibili. Quello a cui sei connesso, toccalo e scopri il tuo IP.
  • MODO: 3 Prova $ adb shell netcfg.

Ora che conosci l'indirizzo IP del tuo dispositivo, collega il tuo host adb ad esso.

$ adb connect 192.168.0.102:5556
already connected to 192.168.0.102:5556
$ adb devices
List of devices attached
ZX1D63HX9R  device
192.168.0.102:5556  device


PASSAGGIO 5.

Rimuovi il cavo USB e dovresti essere collegato al tuo dispositivo. Se non lo vedi, adb devicesriconnettiti semplicemente usando il comando del passaggio precedente:

$ adb connect 192.168.0.102:5556
connected to 192.168.0.102:5556
$ adb devices
List of devices attached
192.168.0.102:5556  device

O sei pronto per andare ora o dovrai uccidere il tuo server adb eseguendolo adb kill-servere ripetere ancora una volta tutti i passaggi.

Spero che aiuti!


Riferimento:


Inoltre, puoi ottenere l'IP del tuo dispositivo con questo script su Unix: adb shell ip -f inet addr show wlan0 | grep inet | echo -n $ (grep -Eo '[0-9 \. \ /]') | echo -n $ (grep -Eo '^ [^ \ /] *') | sed 's / // g'
ahsan.dev

@Eddy Un dubbio sul fatto che sia il sistema che il cellulare / il tablet debbano essere collegati tramite WiFi oppure il sistema sia connesso tramite LAN e tablet collegati utilizzando il router WIFi della stessa rete. Per favore,
chiariscilo

@ i-Droid Non so perché entrambi debbano connettersi nella stessa rete. forse ADB usa uno speciale protocollo di routing della rete. Non ne ho idea e nessuna ricerca approfondita al riguardo. Se ti interessa, benvenuti a chiarirlo e condividerlo con me, grazie!
Eddy,

6

Questi sono i passaggi che ho seguito e ha funzionato per me,

  1. ifbonfig della shell adb (ottenere l'indirizzo IP del dispositivo da qui)

  2. adb tcpip 7777 (collega adb ad alcune porte)

  3. adb connect "indirizzo IP": 7777


5

È inoltre possibile utilizzare il port forwarding locale SSH. Ma comporta ancora un cavo USB. Collega il tuo telefono tramite USB a un computer (host) con un SSHD in esecuzione. Su un PC remoto (guest) avviare un client SSH in grado di portforwarding / tunneling. Esempio:

plink -L 5037:localhost:5037 <host_IP_address>

Uso questa costruzione per connettere il mio dispositivo a una macchina virtuale. Eltima da USB a Ethernet non era abbastanza stabile (timeout durante il debug).

Il tunneling SSH funziona gratuitamente ed è più affidabile.


4

Trovo le altre risposte confuse. Molto più semplice da usare adbWireless:

http://ppareit.github.com/AdbConnect/

Basta installare un'app sul telefono per attivare il debug tramite Wi-Fi, installare un plug-in Eclipse e il gioco è fatto.


A quale plug-in eclipse ti riferisci? Modifica: Nevermind. L'ho trovato seguendo il link nella tua risposta.
ArtOfWarfare il

Questa è solo la radice
Zoe,

3

Ho messo insieme un file batch per l'abilitazione automatica e la connessione di ADB via TCP, a un dispositivo collegato tramite USB. Con esso non è necessario inserire manualmente l'IP.

@echo off
setlocal

REM Use a default env variable to find adb if possible
if NOT "%AndroidSDK%" == "" set PATH=%PATH%;%AndroidSDK%\platform-tools

REM If off is first parameter then we turn off the tcp connection.
if "%1%" == "off" goto off

REM Set vars
set port=%1
set int=%2
if "%port%" == "" set port=5557
if "%int%" == "" set int=wlan0

REM Enable TCP
adb -d wait-for-device tcpip %port%

REM Get IP Address from device
set shellCmd="ip addr show %int% | grep 'inet [0-9]{1,3}(\.[0-9]{1,3}){3}' -oE | grep '[0-9]{1,3}(\.[0-9]{1,3}){3}' -oE"
for /f %%i in ('adb wait-for-device shell %shellCmd%') do set IP=%%i

REM Connect ADB to device
adb connect %IP%:%port%

goto end

:fail
echo adbWifi [port] [interface]
echo adbWifi off
goto end

:off
adb wait-for-device usb

:end

3

Ecco un'estensione della risposta di Brian tramite Bluetooth:

  1. Su Linux, usa Blueman per condividere Internet del PC con il tuo dispositivo tramite Bluetooth:

    $ sudo apt-get install blueman
    $ blueman-manager
    Pair them: Search devices after enabling Bluetooth
    on your phone and making it visible
    $ blueman-services
    Network > [X] Network Access Point (NAP)
    Your Phone > Settings > Bluetooth > Paired Device > [X] Internet access
  2. Utilizzare la rete Bluetooth per i comandi ADB:

    $ adb tcpip 5555
    $ adb connect $(adb shell ip -f inet addr show bt-pan | egrep -o '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | head -n1):5555

Una volta fatto per tornare alla modalità USB:

$ adb disconnect
$ adb usb

Nota: Bluetooth 3.0 e 4.0 possono arrivare fino a 24 Mbit / s .


3

Passaggi:

  1. su - Per passare al superutente.
  2. setprop service.adb.tcp.port 5555 - Per specificare la porta tcp - 5555 è il numero di porta qui
  3. stop adbd - Per interrompere il servizio adbd.
  4. start adbd - Per avviare il servizio adbd.

funziona perfettamente con il sshmio PC Windows

Cerco di farlo all'avvio sul mio cellulare cyanogen o di lanciarlo con il plink. Con plink non riesco ad avviare la shell con su right ... il comando sudo o su non funziona. All'avvio non so come funzioni! Il mio programma shell funziona da ssh con su -c "sh /storage/sdcard1/start_adb.sh"gli ultimi 3 comandi (senza su -)

Grazie


2

Un'ulteriore nota (appresa nel modo più duro): non dovresti avere la tua connessione VPN aziendale attiva allo stesso tempo ...


2

Devi fare le seguenti cose:

  • Innanzitutto, aggiungi ADB al percorso dell'ambiente.
  • Dalla tua CLI digita questo comando adb connect YOUR_DEVICE_IP: PORT_NUMBER (esempio adb connect 192.168.100.100:5555 )

2

Esistono due modi per connettere il tuo dispositivo Android con ADB su TCP?

Primo modo

Segui questi passaggi

Per prima cosa usa il comando seguente per ottenere l'indirizzo IP del tuo dispositivo

adb shell ifconfig

USCITA del comando sopra

wlan0     Link encap:UNSPEC    Driver icnss
          inet addr:XXX.XXX.X.XX  Bcast:XXX.XXX.X.XXX

Con l'aiuto del comando sopra troverai l'indirizzo IP del dispositivo collegato

Ora usa il comando seguente

adb tcpip 5555

Il comando precedente riavvierà questa porta TCP: 5555

Ora usa il comando seguente per connettere il tuo dispositivo

adb connect XXX.XXX.X.XXX:5555
            ^^^ ^^^ ^ ^^^
        IP Address of device

Secondo modo

Puoi utilizzare il plug-in Android Studio Android device with ADB

ADB WiFi Android - Plugin IntelliJ / Android Studio

Plugin IntelliJ e Android Studio creati per connettere rapidamente il tuo dispositivo Android tramite WiFi per installare, eseguire ed eseguire il debug delle tue applicazioni senza una connessione USB. Premi un pulsante e dimentica il cavo USB

Si prega di consultare questo articolo per ulteriori informazioni

Connetti il ​​dispositivo Android con Wifi all'interno di Android Studio


2

Sono strutturato allo stesso problema, ma un semplice trucco ha adb reverse tcp:<PORT> tcp:<PORT>funzionato per me. Permette al sistema di accettare richieste tcp.

Grazie per aver letto


1

Utilizzare l'app adbwireless per abilitare il telefono, quindi utilizzare adb connect dal computer Windows per parlare con esso. L'app adbwireless sul telefono ti dice come collegarti, fornendo l'indirizzo IP e tutto il resto.

L'alternativa molto meno divertente è connettersi tramite USB, dire al telefono di utilizzare TCPIP tramite adb tcpip 5555, quindi scollegare USB, quindi utilizzare adb connect. Questo è molto più difficile perché in questo modo devi capire da te l'indirizzo IP del telefono (adbwireless ti dice l'IP), devi connetterti via USB e devi eseguire adb tcpip (anche adbwireless si occupa di questo).

Quindi: installa adbwireless sul tuo telefono. Usalo È possibile, lo faccio regolarmente su Linux e su Windows.


1

Sul mio sistema è andato così:

Sul mio dispositivo Android nella mia shell Linux, un semplice "ifconfig" non mi ha dato il mio indirizzo IP. Ho dovuto digitare:

ifconfig eth0

-o-

netcfg

per ottenere il mio indirizzo IP. (Sapevo che eth0 era configurato perché l'ho visto nel mio dmesg.) Poi ho fatto il:

setprop service.adb.tcp.port -1

smettere di adbd

avvia adbd

Quindi sul mio box Win7 (quello che esegue Eclipse 3.7.1). Ho aperto un prompt dei comandi a

\ android-sdk \ platform-tools>

senza correre come amministratore. Poi ho fatto un

adb connect 12.345.678.90

Non ho mai messo un porto. Se avessi fatto a

adb tcpip 5555

diceva che non riusciva a trovare il dispositivo, quindi non è apparso nulla nel mio elenco "dispositivi adb". Vale a dire funziona solo se NON eseguo il comando tcpip sopra.

Posso fare una "shell adb" e pasticciare con il mio dispositivo Android. Ma il mio dispositivo Android non viene visualizzato nella scheda Esegui-> Esegui configurazioni-> Destinazione in questo momento. D'altra parte, se tengo la scheda Target impostata su automatica. Quindi, quando eseguo la mia app tramite Esegui-> Esegui, viene eseguita sul mio dispositivo Android anche se il mio dispositivo Android non è nemmeno elencato come uno dei miei target.


1

L'ho fatto funzionare. Non ho usato alcun cavo USB.

  • app adb wireless.
  • Eseguirlo. Ciò imposterà ip e porta; Quindi in dos

    cd C:\Program Files\Android\android-sdk\platform-tools adb connect "192.168.2.22:8000 "enter"

Collegato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.