ฉันจะเชื่อมต่อ Android กับ ADB ผ่าน TCP ได้อย่างไร [ปิด]


879

ฉันพยายามดีบักแอปพลิเคชั่นบนMotorola Droidแต่ฉันมีปัญหาในการเชื่อมต่อกับอุปกรณ์ผ่านทาง USB เซิร์ฟเวอร์การพัฒนาของฉันคือ Windows 7 64-bit VM ที่ทำงานในHyper-Vดังนั้นฉันจึงไม่สามารถเชื่อมต่อโดยตรงผ่าน USB ในเกสต์หรือจากโฮสต์

ฉันติดตั้งโซลูชัน USB-over-TCP สองสามแบบที่แตกต่างกัน แต่การเชื่อมต่อดูเหมือนจะมีปัญหาเนื่องจากจอภาพADBรายงานว่า "devicemonitor ล้มเหลวในการเริ่มตรวจสอบ" ซ้ำ ๆ มีวิธีการเชื่อมต่อโดยตรงจากไคลเอนต์บนเครื่องพัฒนากับ daemon บนอุปกรณ์ที่ใช้เครือข่ายแทนการเชื่อมต่อ USB หรือตัวเลือกที่ทำงานได้หรือไม่?


75
เมื่อเชื่อมต่อผ่าน adb tcpip 5555USB: ยกเลิกการเชื่อมต่อ USB, IP Settings > About Phone > Statusมุมมองโทรศัพท์จาก ตอนนี้adb connect 192.168.x.xและที่มัน ไม่มีเครื่องมือไม่มีซอฟต์แวร์ เพิ่งได้ผล
andreszs

1
สิ่งที่แอนดรูว์กล่าว - นี่คือคำแนะนำอย่างเป็นทางการจากเว็บไซต์นักพัฒนาซอฟต์แวร์ Androidของ Google โดยไม่จำเป็นต้องรูท เพิ่งทำงานบน HTC One m8 ที่ไม่ได้รูทของฉัน (ต้องเปิดใช้งานตัวเลือกสำหรับนักพัฒนาแน่นอน)
Jeff Ward

หากบริการ adb ทำงานที่พอร์ต 5037 เหตุใดจึงค้นหาอุปกรณ์ในช่วง 5555 ถึง 5585
Shivam Aggarwal

@ แอนดรูว์ฉันสามารถใช้แอปเช่นนี้เพื่อเปิดและปิดพอร์ตโดยไม่ต้องใช้คอมพิวเตอร์ใน Nexus 6 ที่ไม่มีการเข้าถึงรูทได้หรือไม่ ฉันกังวลเกี่ยวกับปัญหาด้านความปลอดภัยที่อาจเกิดขึ้นจากการเปิดพอร์ต 5555 เมื่อฉันอยู่ในเครือข่ายสาธารณะและไม่ได้ใช้โทรศัพท์เพื่อการพัฒนา
DaveTheMinion

คำตอบ:


1205

กระบวนการด้วยตนเอง

จากอุปกรณ์ของคุณถ้ามันถูกรูท

จากการโพสต์บน xda-developersคุณสามารถเปิดใช้งาน ADB ผ่าน Wi-Fi จากอุปกรณ์ด้วยคำสั่ง:

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

และคุณสามารถปิดการใช้งานและกลับ ADB ไปฟังบน USB ด้วย

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

จากคอมพิวเตอร์หากคุณมีการเข้าถึง USB แล้ว (ไม่จำเป็นต้องรูท)

การเปลี่ยนเป็นการใช้ Wi-Fi ง่ายกว่าถ้าคุณมี USB อยู่แล้ว จากบรรทัดคำสั่งบนคอมพิวเตอร์ที่มีอุปกรณ์ที่เชื่อมต่อผ่าน USB ออกคำสั่ง

adb tcpip 5555
adb connect 192.168.0.101:5555

โปรดแทนที่192.168.0.101ด้วยที่อยู่ IP ที่กำหนดให้กับอุปกรณ์ของคุณจริง เมื่อเสร็จแล้วคุณสามารถยกเลิกการเชื่อมต่อจากเซสชัน adb tcp โดยเรียกใช้:

adb disconnect 192.168.0.101:5555

คุณสามารถหาที่อยู่ IP ของแท็บเล็ตได้สองวิธี:

การค้นหา IP ด้วยตนเอง:

เข้าสู่การตั้งค่า WiFi ของ Android คลิกปุ่มเมนูในแถบการกระทำ (จุดไข่ปลาแนวตั้ง) กดขั้นสูงและดูที่อยู่ IP ที่ด้านล่างของหน้าจอ

ใช้ ADB เพื่อค้นหา IP:

ดำเนินการคำสั่งต่อไปนี้ผ่าน adb:

adb shell ip -f inet addr show wlan0

เพื่อบอก ADB daemon ให้กลับไปฟังผ่าน USB

adb usb

แอพเพื่อทำให้กระบวนการอัตโนมัติ

นอกจากนี้ยังมีแอพหลายตัวบน Google Play ที่ทำให้กระบวนการนี้เป็นแบบอัตโนมัติ ค้นหาอย่างรวดเร็วแสดงให้เห็นadbWireless , WiFi ADBและADB อินเตอร์เน็ตไร้สาย สิ่งเหล่านี้ต้องการการเข้าถึงรูท แต่adbWirelessต้องการการอนุญาตน้อยกว่า


3
คุณต้องการการเข้าถึงรูทเพื่อทำสิ่งนี้หรือไม่? ดูเหมือนว่าฉันจะสามารถเรียกใช้คำสั่งโดยใช้เทอร์มินัล แต่ดูเหมือนจะใช้งานไม่ได้จริง ๆ ...
JJ

6
@ JJ - น่าเสียดายใช่ ต้องการรูท
Kingsolmn

178
สำหรับวิธีที่สอง ( adb tcipip 5555และadb connect ...ไม่จำเป็นต้องรูท
Ridcully

11
adb tcpip <port>ยังคงต้องro.kernel.qemuตั้งค่าคุณสมบัติอย่างใดอย่างหนึ่ง(ทำงานในโหมดจำลอง) ro.secureเป็น 0 (เช่นอุปกรณ์ที่รูท) หรือro.debuggableและservice.adb.rootตั้งค่าเป็น 1 adbdเพียงแค่จะไม่เปิดการเชื่อมต่อ TCP / IP หากไม่ตรงตามข้างต้น ดูnetmite.com/android/mydroid/system/core/adb/adb.c adb_mainบางส่วนเกี่ยวกับsecureตัวแปร adbdบน Android 2.3.7 ที่ไม่ได้ใช้ของฉันไม่ได้เข้าสู่โหมด TCP / IP เลย
Soulseekah

2
ที่ดี! ทางออกที่สองไม่จำเป็นต้องรูทจริงๆ!
Grzegorz D.

132

นี่เป็นเรื่องง่ายหากโทรศัพท์ของคุณรูท

ดาวน์โหลดเทอร์มินัลอีมูเลเตอร์จากGoogle Play (มีจำนวนมากที่ฟรี) ตรวจสอบให้แน่ใจว่าอุปกรณ์ Android ของคุณเชื่อมต่อกับ Wi-Fi และรับที่อยู่ IP Wi-Fi เปิดโปรแกรมเทอร์มินัลและประเภท:

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

ตอนนี้ไปที่คอมพิวเตอร์ของคุณ (สมมติว่าคุณกำลังใช้ Windows) และสร้างทางลัดบนเดสก์ท็อปสำหรับ "cmd.exe" (โดยไม่มีใบเสนอราคา)

คลิกขวาที่ทางลัด cmd และเลือก "Run as Administrator"

เปลี่ยนเป็นandroid-sdk-windows\toolsโฟลเดอร์ของคุณ

ประเภท:

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

(example: adb connect 192.168.0.105:5555)

adb ควรจะบอกว่าคุณกำลังเชื่อมต่อ

หมายเหตุ:ถ้าคุณเร็วเกินไปที่จะให้คำสั่งเชื่อมต่อมันอาจล้มเหลว ดังนั้นให้ลองอย่างน้อยสองครั้งห้าวินาทีก่อนที่คุณจะพูดว่ามันไม่ทำงาน


6
คำตอบนี้ดีกว่าสำหรับฉันเพราะมันอธิบายว่าส่วนไหนควรทำบนอุปกรณ์และที่คอมพิวเตอร์
Eduardo

5
ก่อน "adb tcpip 5555" DO "adb kill-server" หลังจาก "adb เชื่อมต่อ 192.168.0.101:5555" DO "อุปกรณ์ adb" หรือ "adb shell" (การเชื่อมต่อไม่เริ่มเชลล์)
samis

ฉันลองadb tcpip 5555แล้วบุคคลอื่นดำเนินการadb connect myIP:5555บนพีซีของพวกเขา เขาสามารถติดตั้งแอพลงในโทรศัพท์ของฉัน แต่เขาไม่สามารถแก้ไขข้อบกพร่องได้จากระยะไกล เป็นไปได้หรือไม่ที่จะดีบักจากระยะไกล ในโทรศัพท์ของฉันมีการสนทนาwaiting for debuggerตลอดไป
Angelina

สิ่งนี้ทำให้การตั้งค่าคงอยู่ตลอดการบูตเครื่องใหม่หรือไม่
Hritik

สิ่งนี้ทำงานกับที่อยู่ ipv6 ผ่านอินเทอร์เน็ตมือถือได้หรือไม่
CaptainFreedom

94
  1. เชื่อมต่ออุปกรณ์ผ่าน USB และตรวจสอบว่าการดีบักทำงานแล้วจากนั้นเรียกใช้:

    adb tcpip 5555
    adb connect <DEVICE_IP_ADDRESS>:5555
  2. ปลดการเชื่อมต่อ USB และดำเนินการแก้ไขข้อบกพร่องแบบไร้สาย

  3. เมื่อเสร็จแล้วและต้องการเปลี่ยนกลับเป็นการดีบัก USB ให้เรียกใช้:

    adb -s <DEVICE_IP_ADDRESS>:5555

เพื่อหาที่อยู่ IP ของอุปกรณ์ของคุณไปที่เกี่ยวกับอุปกรณ์หรือการทำงานของคุณSettings > Wi-Fi > Advanced > IP Addressadb shell netcfg

ไม่จำเป็นต้องรูท สามารถ debugged อุปกรณ์ได้ครั้งละหนึ่งเครื่องเท่านั้น

ดูโพสต์ XDAนี้

adbคำสั่งจะอยู่ในplatform-toolsโฟลเดอร์ของ Android SDK


2
ที่จริงแล้วคุณสามารถเชื่อมต่ออุปกรณ์ต่าง ๆ ได้พร้อมกันหากคุณทำตามคำสั่งที่ถูกต้อง เพียงแค่ตั้งค่า tcpip เป็น 5555 สำหรับโทรศัพท์แต่ละเครื่องจากนั้นออกคำสั่งเชื่อมต่อสำหรับโทรศัพท์แต่ละเครื่องและvoiláพวกเขาทั้งหมดเชื่อมต่อกับ adb
andreszs

การดีบักจะช้าลงเล็กน้อยหากโทรศัพท์ของฉันเชื่อมต่อด้วยวิธีนี้ นอกจากนี้บางครั้งมันก็ผล็อยหลับไปและทำให้เกิดการเชื่อมต่อทันที
Aron Lorincz

ในอุปกรณ์บางตัวความล่าช้าระหว่างคำสั่งadb tcpipและคำสั่งadb connectนั้นจะต้องต่ำมากมิฉะนั้นจะไม่ทำงาน นอกจากนี้สำหรับฉันมันทำงานด้วยการทำadb tcpip 5555 && adb connect <DEVICE_IP_ADDRESS>:5555
vhamon

61

สมมติว่าคุณบันทึกเส้นทาง adb ลงในพา ธ สภาพแวดล้อม Windows ของคุณ

  1. เปิดใช้งานโหมดแก้ไขข้อบกพร่องใน Android

  2. เชื่อมต่อกับพีซีผ่าน USB

  3. ประเภทพรอมต์คำสั่งเปิด: adb tcpip 5555

  4. ตัดการเชื่อมต่อแท็บเล็ตหรือสมาร์ทโฟนของคุณจากพีซี

  5. ประเภทพรอมต์คำสั่งเปิด: adb connect IPADDRESS(IPADDRESS คือที่อยู่ DHCP / IP ของแท็บเล็ตหรือสมาร์ทโฟนซึ่งคุณสามารถค้นหาได้ด้วย Wi-Fi -> เครือข่ายที่เชื่อมต่อปัจจุบัน)

ตอนนี้ในพร้อมท์คำสั่งคุณควรเห็นผลลัพธ์เช่น: เชื่อมต่อกับ xxx.xxx.xxx.xxx:5555


ขอบคุณสำหรับลำดับขั้นตอนและพูดถึงเมื่อถอดพีซี
Manju

53

จากadb --help:

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

นั่นเป็นตัวเลือกบรรทัดคำสั่ง

คุณควรลองเชื่อมต่อโทรศัพท์กับ Wi-Fi ของคุณแล้วรับที่อยู่ IP จากเราเตอร์ของคุณ มันจะไม่ทำงานบนเครือข่ายมือถือ

พอร์ตคือ 5554


1
ฉันได้ลองกับ 5555-5558 และตอนนี้ 5554 และมันไม่ทำงานด้วยเหตุผลบางอย่าง โดยพื้นฐานจากบรรทัดคำสั่ง: adb kill-server adb เชื่อมต่อ 10.10.10.100:5554 โดยที่ผลลัพธ์เป็น * daemon ไม่ได้ทำงาน เริ่มต้นทันที * * daemon เริ่มต้นได้สำเร็จ * ไม่สามารถเชื่อมต่อกับ 10.10.10.100:5554 ฉันสามารถ ping ip ของอุปกรณ์จากเวิร์กสเตชัน dev เมื่อสถานะเอาต์พุต "daemon เริ่มต้นสำเร็จ" ไม่ควรอ้างถึง daemon บนอุปกรณ์หรือไม่ เป็นไปได้หรือไม่ที่จะพยายามใช้ตัวจำลอง ฉันจะแน่ใจ / ตรวจสอบความถูกต้อง daemon ที่ทำงานบนอุปกรณ์ได้อย่างไร ขอบคุณ
JDM

2
คุณควรadb tcpip portเริ่มต้นเป็นค่าเริ่มต้นคือการแก้จุดบกพร่องผ่าน usb หลังจากหลังคุณสามารถเชื่อมต่อconnect host:portและควรจะทำงาน
Aiden Strydom

"พอร์ต adc tcpip" อย่างแท้จริง? ที่เพิ่งส่งคืนสตริง "ข้อผิดพลาด: ไม่พบอุปกรณ์" - มีการพิมพ์ผิดหรือไม่? หรือฉันควรแทนที่บางสิ่งที่นี่?
BrainSlugs83

3
Ahhh !! คิดออกหมายเลขพอร์ตเริ่มต้นสำหรับ CyanogenMod คือ 5555! NICE : D
BrainSlugs83

@Michael อาจใช้งานได้กับเครือข่ายมือถือบางส่วน แต่การกำหนดค่าเครือข่ายของพวกเขานั้นเป็นกล่องดำโดยทั่วไปคุณไม่ทราบว่าเมื่อใด / หากคุณอยู่หลังไฟร์วอลล์หากพอร์ตถูกบล็อกหากการแปล NAT เกิดขึ้น ฯลฯ
BrainSlugs83

45

สำหรับผู้ใช้ Windows:

ขั้นตอนที่ 1:
คุณต้องเปิดใช้งานตัวเลือกนักพัฒนาในโทรศัพท์ Android ของคุณ
คุณสามารถเปิดใช้งานตัวเลือกสำหรับนักพัฒนาโดยใช้วิธีนี้
•เปิดการตั้งค่า> เกี่ยวกับ> ข้อมูลซอฟต์แวร์> เพิ่มเติม
•จากนั้นแตะ“ สร้างหมายเลข” เจ็ดครั้งเพื่อเปิดใช้งานตัวเลือกนักพัฒนา
•กลับไปที่เมนูการตั้งค่าและตอนนี้คุณจะเห็น“ ตัวเลือกผู้พัฒนา” ที่นั่น
•แตะและเปิดการดีบัก USB จากเมนูบนหน้าจอถัดไป

ขั้นตอนที่ 2:

เปิด cmd และพิมพ์ adb
หากคุณพบว่าคำสั่ง adb นั้นไม่ถูกต้องคุณจะต้องเพิ่มพา ธ ไปยังตัวแปรสภาพแวดล้อม

•ไปที่โฟลเดอร์ที่ติดตั้ง SDK ของคุณก่อน
ทำตามเส้นทางนี้และเส้นทางนี้เป็นเพียงตัวอย่าง D: \ โปรแกรม \ การพัฒนา \ Andoird \ SDK \ SDK \ แพลตฟอร์มเครื่องมือ \; D: \ โปรแกรม \ การพัฒนา \ Andoird \ SDK \ SDK \ เครื่องมือ
•ตอนนี้ค้นหาการตั้งค่าขั้นสูงระบบ windows

ป้อนคำอธิบายรูปภาพที่นี่

เปิดตัวแปรสภาพแวดล้อม

ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นเปิดเส้นทางและวางเส้นทางต่อไปนี้เป็นตัวอย่าง
เส้นทาง SDK ของคุณแตกต่างจากของฉันโปรดใช้ของคุณ D: \ โปรแกรม \ การพัฒนา \ Andoird \ SDK \ SDK \ แพลตฟอร์มเครื่องมือ \;
D: \ โปรแกรม \ การพัฒนา \ Andoird \ SDK \ SDK \ เครื่องมือ

ป้อนคำอธิบายรูปภาพที่นี่

ขั้นตอนที่ 3:

เปิด cmd และพิมพ์ adb หากคุณยังคงเห็นว่า adb ไม่ถูกต้องคำสั่งเส้นทางของคุณไม่ได้ตั้งค่าอย่างถูกต้องทำตามขั้นตอนข้างต้น

ป้อนคำอธิบายรูปภาพที่นี่

ตอนนี้คุณสามารถเชื่อมต่อโทรศัพท์ Android ของคุณกับพีซี

เปิด cmd และพิมพ์อุปกรณ์ adb แล้วคุณจะเห็นอุปกรณ์ของคุณ ค้นหาที่อยู่ IP ของคุณ

ป้อนคำอธิบายรูปภาพที่นี่

ประเภท: - adb tcpip 5555

ป้อนคำอธิบายรูปภาพที่นี่

รับที่อยู่ IP ของโทรศัพท์ของคุณ

adb shell netcfg

ตอนนี้

adb connect "IP address of your phone"

ตอนนี้เรียกใช้โครงการ Android ของคุณและหากไม่เห็นอุปกรณ์ของคุณให้พิมพ์ adb อีกครั้งเชื่อมต่อที่อยู่ IP ของโทรศัพท์ของคุณ

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

สำหรับผู้ใช้ Linux และ macOS :

ขั้นตอนที่ 1: เปิด terminal และติดตั้ง adb โดยใช้

sudo apt-get ติดตั้ง android-tools-adb android-tools-fastboot

เชื่อมต่อโทรศัพท์ของคุณผ่านสาย USB กับพีซี พิมพ์คำสั่งต่อไปนี้ใน terminal

adb tcpip 5555

ใช้ adb เชื่อมต่อที่อยู่ ip ของโทรศัพท์ Android

ลบโทรศัพท์ของคุณ


36

จากคอมพิวเตอร์บนอุปกรณ์ที่ไม่ได้รูท

(โปรดทราบว่าสิ่งนี้สามารถทำได้โดยใช้อุปกรณ์ที่รูทเช่นกัน แต่คุณสามารถใช้เชลล์บนอุปกรณ์ที่รูตซึ่งไม่ต้องการการเชื่อมต่อ USB)

ประการแรกคำสั่ง open open (CMD) หากคุณใช้ Android Studio หรือ IntelliJ มีคอนโซลที่รวมอยู่ในนั้นคุณสามารถใช้

หากคุณเพิ่ม adb ลงในพา ธ คุณสามารถข้ามส่วนซีดีได้


ถ้าเป็นไปได้ให้เปิดที่ตั้ง SDK คลิกขวาแล้วกด "start command prompt here" ไม่ใช่ทุกคนที่มีตัวเลือกนี้ดังนั้นคุณต้องทำตามคำสั่ง (/ เหล่านี้) ด้วย:

Windows: เปลี่ยนไดรฟ์ (ถ้ามี)

D: 

และเข้าถึงเครื่องมือ sdk และแพลตฟอร์ม แทนที่เส้นทางนี้ด้วยตำแหน่ง SDK ของคุณ:

cd /sdk/path/here/platform-tools

ตอนนี้คุณสามารถเข้าถึงสะพานดีบั๊กของ Android แล้ว


ด้วยอุปกรณ์ที่เชื่อมต่อกับคอมพิวเตอร์ให้ทำ:

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

<port>พอร์ตที่คุณต้องการเชื่อมต่ออยู่ที่ไหน(ค่าเริ่มต้นคือ5555) และ<ip>เป็น IP ของอุปกรณ์ที่คุณต้องการเชื่อมต่อ

โปรดทราบ: 5555เป็นพอร์ตเริ่มต้นและเพียงแค่เขียนที่อยู่ IP เชื่อมต่อมัน หากคุณใช้พอร์ตที่กำหนดเองคุณสามารถปรับปรุงความปลอดภัยได้สักเล็กน้อย การดีบัก USB ผ่าน Wi-Fi สามารถถูกทำร้ายได้ แต่เฉพาะในกรณีที่อุปกรณ์นั้นเชื่อมต่อกับคอมพิวเตอร์ที่ต้องการละเมิดอุปกรณ์ อย่างน้อยการใช้พอร์ตที่ไม่ใช่ค่าเริ่มต้นทำให้การเชื่อมต่อนั้นยากขึ้นเล็กน้อย

หากคุณใช้พอร์ตที่กำหนดเองตรวจสอบให้แน่ใจว่าได้เพิ่มพอร์ตหลัง IP การเขียนไม่มีการเชื่อมต่อพอร์ต5555และหากคุณไม่ได้ใช้การเชื่อมต่อนั้นจะล้มเหลว

คุณสามารถค้นหาที่อยู่ IP ของอุปกรณ์ได้สองวิธี:

  • ชื่อที่แน่นอนอาจแตกต่างกันไปขึ้นอยู่กับอุปกรณ์ของคุณ เปิดการตั้งค่าและไปที่เกี่ยวกับอุปกรณ์ -> สถานะ -> ที่อยู่ IP

  • ใช้ ADB เพื่อรับ IP

จากคอนโซลให้ทำ:

adb shell ip -f inet addr show wlan0

และเมื่อคุณเสร็จสิ้นการเชื่อมต่อคุณสามารถยกเลิกการเชื่อมต่ออุปกรณ์จากคอมพิวเตอร์โดยทำดังนี้

adb disconnect <ip>:<port>

หรือไม่มี IP เพื่อตัดการเชื่อมต่ออุปกรณ์ทั้งหมด หากคุณใช้พอร์ตที่กำหนดเองคุณต้องระบุพอร์ตที่จะปลดจาก ค่าเริ่มต้นคือ 5555 ที่นี่เช่นกัน

หากต้องการปิดการใช้งานพอร์ต (หากเป็นสิ่งที่คุณต้องการจะทำ) ให้คุณทำคำสั่งนี้กับอุปกรณ์ที่เชื่อมต่ออยู่:

adb usb

หรือคุณสามารถรีสตาร์ทอุปกรณ์เพื่อลบการเชื่อมต่อ tcpip

จากคอมพิวเตอร์บนอุปกรณ์ที่รูท

ประการแรกคุณต้องเข้าถึงเชลล์ คุณสามารถเชื่อมต่ออุปกรณ์ด้วยสาย USB และใช้adb shellหรือดาวน์โหลดแอพจาก Google Play, FDroid หรือแหล่งอื่น ๆ

จากนั้นคุณ:

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

adb connect <ip>:<port>และการเชื่อมต่ออุปกรณ์ที่คุณทำตามที่ในรุ่นที่ไม่ใช่รากโดยการทำ

และถ้าคุณต้องการปิดการใช้งานพอร์ตและกลับไปฟัง USB:

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

คุณยังสามารถใช้ปลั๊กอิน Android Studio เพื่อทำเพื่อคุณ (จำชื่อตอนนี้ได้) และสำหรับผู้ใช้ที่รูทแล้วยังมีตัวเลือกในการดาวน์โหลดแอพ Android เพื่อตั้งค่าการเชื่อมต่อโทรศัพท์ (อาจต้องใช้การเชื่อมต่อ adb )

โทรศัพท์บางคนมีการตั้งค่าในตัวเลือกของนักพัฒนาซอฟต์แวร์ (นี้บางโทรศัพท์ unrooted แม้ว่าอาจจะเป็นบางส่วนโทรศัพท์มือรากเกินไป) ที่ช่วยให้การสลับ ADB ผ่าน Wi-Fi จากอุปกรณ์ตัวเองโดยไม่มีรากหรือการเชื่อมต่อคอมพิวเตอร์ที่จะเริ่มต้น แม้ว่าจะมีโทรศัพท์ไม่กี่เครื่องที่มีสิ่งนั้น


adb shell ip -f inet addr show wlan0 มีการสนับสนุนที่อยู่ IP และพอร์ตในที่อื่น ๆ หรือไม่?
Michael

ไม่อยู่ในบรรทัดนั้น นั่นคือวิธีเชลล์เพื่อรับ IP ไม่มีสิ่งใดในนั้นที่จะถูกแทนที่ในบรรทัดนั้น
โซอี

33

ฉันต้องการให้ทั้ง USB และ TCPIP ทำงานกับADB (ไม่ต้องถาม) ดังนั้นฉันจึงทำสิ่งต่อไปนี้ (โดยใช้ทิศทางที่ผู้อื่นโพสต์จาก xda-Developers)

การใช้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

ไม่ทำงาน: ไม่พบ adbd โดยปกติ adbd จะถูกเรียกใช้ผ่าน start adbd แต่อาจมีสคริปต์ / executable ในบางโฟลเดอร์?
KrisWebDev

1
เมื่อวันที่ GNEX /sbin/adbdของฉันก็ ที่อาจแตกต่างกันไปตามโทรศัพท์ แน่นอนคุณต้องรูท ... หากคุณไม่รูทคุณจะไม่สามารถเข้าถึง / sbin ได้
ทรานซิสเตอร์ 1

32

ในการเชื่อมต่อแท็บเล็ตโดยใช้พอร์ต TCP ตรวจสอบให้แน่ใจว่าระบบและอุปกรณ์ของคุณเชื่อมต่อกับเครือข่ายเดียวกัน

  1. เปิดคอนโซลcmd.exe
  2. ชนิด adb tcpip 5555
  3. ไปที่ระบบ -> ตัวเลือกการพัฒนา -> การดีบัก USB -> ยกเลิกการเลือกสำหรับการเชื่อมต่อ TCPIP
  4. พิมพ์adb connect 192.168.1.2นี่คือที่อยู่ IP ของอุปกรณ์ของคุณ
  5. เชื่อมต่อกับ 192.168.1.2

เชื่อมต่อโดยใช้พอร์ตไปข้างหน้า ลองทำการส่งต่อพอร์ต

adb ไปข้างหน้า tcp: <PC port>tcp:<device port>

ชอบ:

adb ไปข้างหน้า tcp: 5555 tcp: 5555

C: \ Users \ abc> adb ไปข้างหน้า tcp: 7612 tcp: 7612

C: \ Users \ abc> adb tcpip 7612 รีสตาร์ทในพอร์ตโหมด TCP: 7612

C: \ Users \ abc> adb เชื่อมต่อ 10.0.0.1:7612

เชื่อมต่อกับ 10.0.0.1:7612

หากคุณได้รับข้อความแสดงข้อผิดพลาด: ไม่พบอุปกรณ์เชื่อมต่ออุปกรณ์ usb กับระบบให้ทำตามขั้นตอนเดียวกัน
สำหรับอุปกรณ์ที่รูท

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

2
ในคอนโซลเขียนsuก่อนเพื่อรับรูท - คอนโซล
กลัว

30

ฉันไม่ทราบวิธีการเชื่อมต่ออุปกรณ์โดยไม่มีการเชื่อมต่อ USB เลย แต่ถ้าคุณจัดการเพื่อเชื่อมต่อมันอาจจะอยู่ที่คอมพิวเตอร์เครื่องอื่นคุณสามารถเปลี่ยน adbd เป็นโหมด TCP โดยการออก

adb tcpip <port>

จากเทอร์มินัลและเชื่อมต่อกับอุปกรณ์ของคุณผ่าน wifi จากพีซีเครื่องใดก็ได้บนเครือข่ายโดย:

adb connect <ip>:<port>

อาจเป็นไปได้ที่จะสลับไปใช้โหมด TCP จากเทอร์มินัลในอุปกรณ์


จากคำตอบที่ซับซ้อนทั้งหมดที่ได้รับการยกระดับสูงคำตอบนี้อายุ 8 ปีที่ง่ายที่สุดและทำงานได้โดยไม่ต้องรูท เพียงพิมพ์ 'adb connect <ip>: 5555' และจะสามารถใช้งานได้
RogerW

29

ก่อนอื่นคุณต้องเชื่อมต่ออุปกรณ์ของคุณผ่าน USB

จากนั้นเชื่อมต่ออุปกรณ์ของคุณกับ WIFI และรับที่อยู่ IP ในขณะที่ยังคงเชื่อมต่อผ่าน usb พิมพ์สิ่งนี้ในบรรทัดคำสั่งหรือผ่านทาง Android Studio Terminal

adb tcpip 5555
adb connect <device IP>:5555

คุณจะเห็นข้อความเหล่านี้:

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

ตอนนี้ถอดสายเคเบิล USB ออกแล้วคุณจะยังเห็น logcat ของคุณตามปกติ

เสร็จสิ้น สนุก


สิ่งนี้ใช้ได้ผล อย่างไรก็ตาม หลังจากทำตามขั้นตอนเหล่านี้แล้วฉันจะไม่สามารถกลับไปที่ตัวจำลองได้อีกต่อไป ข้อเสนอแนะ?
ทิมสกอตต์

คุณต้องรีสตาร์ท adb ของคุณด้วย: <adb kill-server> แล้ว <adb start-server>
Joolah

21

หากคุณต้องการเชื่อมต่ออุปกรณ์ของคุณเพื่อเรียกใช้ดีบักหรือปรับใช้แอพ Android ผ่าน WiFi คุณสามารถใช้ปลั๊กอิน IntelliJ ที่เป็นโอเพ่นซอร์สที่ฉันได้พัฒนาขึ้น นี่คือรหัสและนี่คือปลั๊กอินที่พร้อมใช้งาน

การใช้งานค่อนข้างง่าย ที่นี่คุณมี gif:

ป้อนคำอธิบายรูปภาพที่นี่


ข้อผิดพลาดนี้เกิดขึ้น: "'ไม่พบคำสั่ง adb' ตรวจสอบการติดตั้ง Android SDK ของคุณ
rostamiani

1
คุณต้องประกาศตัวแปรสภาพแวดล้อมด้วยชื่อ ANDROID_HOME แต่ฉันมีการประชาสัมพันธ์เพื่อรอการตรวจสอบเพื่อหลีกเลี่ยงปัญหานี้ ด้วยรุ่น 1.2 ฉันจะเผยแพร่ในสัปดาห์หน้าปลั๊กอินจะทำงานร่วมกับ IntelliJ ที่ติดตั้งแล้ว :)
Pedro Vicente GómezSánchez

ฉันใช้ mac ไม่เห็นไอคอนใน AS ใช่ไหม ฉันต้องทำอะไรด้วยตัวเองก่อนหรือไม่?
powder366

1
ฉันได้เผยแพร่เวอร์ชันใหม่แล้วซึ่งไม่จำเป็นต้องใช้ตัวแปรสภาพแวดล้อม ANDROID_HOME อีกต่อไป @ powder366 คุณต้องติดตั้งปลั๊กอินจากร้านปลั๊กอิน IntelliJ เพื่อทำการติดตั้งด้วยตนเอง คำแนะนำทั้งหมดที่จำเป็นในการติดตั้งและใช้งานปลั๊กอินอยู่ในโครงการ readme ลองดูgithub.com/pedrovgs/AndroidWiFiADB
Pedro Vicente GómezSánchez

@ PedroVicenteGómezSánchezขอบคุณ ฉันเลือกปลั๊กอินที่ไม่ถูกต้องมีอีกปลั๊กอินหนึ่งที่มีชื่อคล้ายกัน ...
powder366

11

ดังที่ไบรอันกล่าวว่า:

จากการโพสต์บน xda-developers คุณสามารถเปิดใช้งาน ADB ผ่าน WiFi จากอุปกรณ์ด้วยคำสั่ง

setprop service.adb.tcp.port 5555

หยุด adbd

เริ่ม adbd

และคุณสามารถปิดการใช้งานและกลับ ADB ไปฟังบน USB ด้วย

setprop service.adb.tcp.port -1

หยุด adbd

เริ่ม adbd

หากคุณมีการเข้าถึง USB อยู่แล้วการเปลี่ยนไปใช้ WiFi ก็ง่ายยิ่งขึ้น จากบรรทัดคำสั่งบนคอมพิวเตอร์ที่มีอุปกรณ์ที่เชื่อมต่อผ่าน USB ออกคำสั่ง

adb tcpip 5555

adb เชื่อมต่อ 192.168.0.101:5555

เพื่อบอก ADB daemon ให้กลับไปฟังผ่าน USB

adb usb

นอกจากนี้ยังมีแอพหลายตัวใน Android Market ที่ทำให้กระบวนการนี้เป็นแบบอัตโนมัติ

ใช้งานได้คุณเพียงแค่เข้าถึงเชลล์ Android และพิมพ์คำสั่งเหล่านั้น ...

อีกวิธีหนึ่งที่ง่ายกว่าอยู่ใน Market adbWireless มันจะตั้งค่าโทรศัพท์ของคุณโดยอัตโนมัติ

ต้องการรูท! สำหรับทั้ง...


2
... แต่เฉพาะในกรณีที่โทรศัพท์ถูกรูท
android.weasel

Asus Transformer 301 - ไม่ต้องทำงานโดยไม่ต้องรูท
Aiden Strydom

9
adb tcpip 5555

แปลก แต่สิ่งนี้ใช้ได้กับฉันถ้าฉันมีการเชื่อมต่อสายเคเบิล USB แล้วฉันจะสามารถถอดปลั๊ก usb และไปกับทุกอย่างอื่น adb

และเช่นเดียวกันเมื่อกลับสู่ usb

adb usb

จะทำงานเมื่อเชื่อมต่อ usb เท่านั้น

มันไม่สำคัญว่าฉันจะออก

setprop service.adb.tcp.port 5555

หรือ

setprop service.adb.tcp.port -1

จากนั้นหยุด & เริ่ม adbd ฉันยังคงต้องมีสายเคเบิล USB หรือไม่ทำงาน

ดังนั้นหาก ADB บน ​​usb ของฉันไม่ทำงานฉันก็คิดว่าฉันจะไม่สามารถเปิดใช้งาน ADB ผ่าน WiFi ได้เช่นกัน


8

หากต้องการสลับระหว่างโหมด TCP และ USB ด้วยคำสั่งเดียวคุณสามารถเพิ่มสิ่งนี้ใน/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

และตอนนี้คุณสามารถใช้คุณสมบัติservice.adb.tcp.enableเพื่อเปิดใช้งานหรือปิดใช้งานการฟังบนพอร์ต 5555 เรียกใช้netstatเพื่อตรวจสอบว่ามันกำลังฟังอยู่หรือไม่ ในขณะที่คุณสามารถเห็นมันจะเรียกถ้าคุณต้องการเปลี่ยนservice.adb.tcp.portด้วยตนเอง



7

ขั้นตอนที่ 1.

ตรวจสอบให้แน่ใจว่าทั้งคอมพิวเตอร์โฮสต์ adb และอุปกรณ์ Android ของคุณอยู่ในเครือข่าย Wifi เดียวกัน

ขั้นตอนที่ 2.

เชื่อมต่ออุปกรณ์ Android กับคอมพิวเตอร์โดยใช้สาย USB ของคุณ ทันทีที่คุณทำเช่นนั้นคอมพิวเตอร์แม่ข่ายของคุณจะตรวจจับอุปกรณ์ของคุณและ adb จะเริ่มทำงานในโหมด USB บนคอมพิวเตอร์ คุณสามารถตรวจสอบอุปกรณ์ที่แนบมาด้วยadb devicesขณะที่ให้แน่ใจว่า adb ที่กำลังทำงานในโหมด USB adb usbโดยการดำเนินการ

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


ขั้นตอนที่ 3

รีสตาร์ท adb ในโหมด tcpip ด้วยคำสั่งนี้:

$ adb tcpip 5556
restarting in TCP mode port: 5556


ขั้นตอนที่ 4

ค้นหาที่อยู่ IP ของอุปกรณ์ Android มีหลายวิธีในการทำเช่นนั้น:

  • วิธี: 1ไปที่การตั้งค่า -> เกี่ยวกับโทรศัพท์ / แท็บเล็ต -> สถานะ -> ที่อยู่ IP
  • วิธี: 2ไปที่รายการเครือข่าย Wi-Fi ที่มีอยู่ สิ่งที่คุณกำลังเชื่อมต่อแตะที่สิ่งนั้นและทำความรู้จักกับ IP ของคุณ
  • WAY: 3$ adb shell netcfgลอง

ตอนนี้คุณรู้ที่อยู่ IP ของอุปกรณ์ของคุณแล้วให้เชื่อมต่อโฮสต์ adb ของคุณ

$ 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


ขั้นตอนที่ 5

ถอดสายเคเบิล USB และคุณควรเชื่อมต่อกับอุปกรณ์ของคุณ หากคุณไม่เห็นภายในให้adb devicesเชื่อมต่อใหม่โดยใช้คำสั่งของขั้นตอนก่อนหน้า:

$ 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

ไม่ว่าคุณจะดีไปตอนนี้หรือคุณจะต้องฆ่าเซิร์ฟเวอร์ adb ของคุณโดยการดำเนินการ adb kill-serverและทำตามขั้นตอนทั้งหมดอีกครั้ง

หวังว่าจะช่วย!


อ้างอิง:


นอกจากนี้คุณสามารถรับ IP ของอุปกรณ์ของคุณด้วยสคริปต์นี้บน Unix: adb shell ip -f inet addr แสดง wlan0 | grep inet | echo -n $ (grep -Eo '[0-9 \. \ /]') | echo -n $ (grep -Eo '^ [^ \ /] *') | sed 's / // g'
ahsan.dev

@Eddy หนึ่งสงสัยว่าทั้งระบบและมือถือ / แท็บเล็ตจะต้องเชื่อมต่อผ่าน WiFi หรือระบบอื่นที่เชื่อมต่อผ่าน LAN และแท็บเล็ตที่เชื่อมต่อโดยใช้เราเตอร์ WIFi ของเครือข่ายเดียวกัน กรุณาอธิบาย
iSrinivasan27

@ i-Droid ฉันไม่รู้ว่าทำไมทั้งสองต้องเชื่อมต่อในเครือข่ายเดียวกัน บางที ADB อาจใช้โปรโตคอลการกำหนดเส้นทางเน็ตพิเศษ ฉันไม่มีความคิดและไม่มีการวิจัยอย่างลึกซึ้งเกี่ยวกับเรื่องนี้ หากคุณมีความสนใจในมันยินดีที่จะชี้แจงและแบ่งปันกับฉันขอบคุณ!
Eddy

6

เหล่านี้เป็นขั้นตอนที่ฉันทำตามและได้ผลสำหรับฉัน

  1. ifconfig adb shell (รับที่อยู่ ip ของอุปกรณ์จากที่นี่)

  2. adb tcpip 7777 (เชื่อมต่อ adb กับบางพอร์ต)

  3. adb เชื่อมต่อ "ipaddress": 7777


5

คุณยังสามารถใช้การส่งต่อพอร์ตโลคัล SSH แต่มันยังเกี่ยวข้องกับสาย USB เชื่อมต่อโทรศัพท์ของคุณโดยใช้ USB เข้ากับคอมพิวเตอร์ (โฮสต์) โดยใช้ sshd บนรีโมต (เกสต์) pc เริ่มต้นไคลเอ็นต์ SSH ที่สามารถ portforwarding / tunneling ตัวอย่าง:

plink -L 5037:localhost:5037 <host_IP_address>

ฉันใช้สิ่งก่อสร้างนี้เพื่อเชื่อมต่ออุปกรณ์ของฉันกับเครื่องเสมือน Eltima USB กับอีเธอร์เน็ตไม่เสถียรพอ (หมดเวลาระหว่างการดีบัก)

SSH tunneling ใช้งานได้ฟรีและเชื่อถือได้มากกว่า


4

ฉันพบว่าคำตอบอื่น ๆ ทำให้เกิดความสับสน ง่ายกว่าการใช้ adb ไร้สาย:

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

เพียงติดตั้งแอพในโทรศัพท์ของคุณเพื่อสลับการดีบักผ่าน wifi ติดตั้งปลั๊กอิน eclipse และคุณก็ทำเสร็จแล้ว


คุณหมายถึง eclipse plug-in ใด? แก้ไข: ไม่เป็นไร พบได้โดยไปที่ลิงก์ในคำตอบของคุณ
ArtOfWarfare

นี่เป็นเพียงรากเท่านั้น
โซอี้

3

ฉันรวบรวมไฟล์แบตช์สำหรับเปิดใช้งานอัตโนมัติและเชื่อมต่อ ADB ผ่าน TCP ไปยังอุปกรณ์ที่เชื่อมต่อผ่าน USB ด้วยคุณไม่ต้องใส่ 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

นี่คือส่วนขยายของคำตอบของ Brian ที่ใช้บลูทู ธ :

  1. บน Linux ให้ใช้ Blueman เพื่อแชร์อินเทอร์เน็ตพีซีกับอุปกรณ์ของคุณผ่าน 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. ใช้เครือข่าย Bluetooth สำหรับคำสั่ง 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

เมื่อเสร็จแล้วเพื่อกลับสู่โหมด USB:

$ adb disconnect
$ adb usb

หมายเหตุ: บลูทู ธ 3.0 และ 4.0 สามารถไปได้ถึง 24 Mbit / s


3

ขั้นตอน:

  1. su - เพื่อสลับไปยังผู้ใช้ super
  2. setprop service.adb.tcp.port 5555 - เพื่อระบุพอร์ต tcp - 5555 เป็นหมายเลขพอร์ตที่นี่
  3. stop adbd - เพื่อหยุดการบริการ adbd
  4. start adbd - เพื่อเริ่มบริการ adbd

มันทำงานได้อย่างสมบูรณ์แบบด้วยsshจาก windows PC ของฉัน

ฉันพยายามทำสิ่งนี้ในการบู๊ตบนมือถือไซยานอยินของฉัน ด้วย plink ฉันไม่สามารถเปิดเชลล์ด้วย su ขวา ... คำสั่ง sudo หรือ su ไม่ทำงาน ในการบูทฉันไม่รู้ว่ามันทำงานอย่างไร! โปรแกรมเชลล์ของฉันทำงานจาก ssh พร้อมsu -c "sh /storage/sdcard1/start_adb.sh"กับ 3 คำสั่งล่าสุด (โดยไม่ต้อง su -)

ขอบคุณ


2

หมายเหตุเพิ่มเติมหนึ่งรายการ (เรียนรู้วิธีการอย่างหนัก): คุณไม่ควรเปิดใช้งานการเชื่อมต่อ VPN ของ บริษัท ของคุณในเวลาเดียวกัน ...


2

คุณต้องทำสิ่งต่อไปนี้:

  • ก่อนอื่นให้เพิ่ม ADB ลงในพา ธ สภาพแวดล้อมของคุณ
  • จาก CLI ของคุณพิมพ์คำสั่งนี้adb เชื่อมต่อ YOUR_DEVICE_IP: PORT_NUMBER (ตัวอย่างadb เชื่อมต่อ 192.168.100.100:5555 )

2

มีสองวิธีในการเชื่อมต่ออุปกรณ์ Android ของคุณกับ ADB ผ่าน TCP หรือไม่?

วิธีแรก

ทำตามขั้นตอนนี้

ใช้คำสั่งด้านล่างก่อนเพื่อรับที่อยู่ IP ของอุปกรณ์ของคุณ

adb shell ifconfig

เอาท์พุทของคำสั่งดังกล่าว

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

ด้วยความช่วยเหลือของคุณข้างต้นคำสั่งคุณจะพบที่อยู่ IP ของอุปกรณ์ที่เชื่อมต่อ

ตอนนี้ใช้คำสั่งด้านล่าง

adb tcpip 5555

คำสั่งดังกล่าวจะรีสตาร์ทพอร์ต TCP นี้: 5555

ตอนนี้ใช้คำสั่งด้านล่างเพื่อเชื่อมต่ออุปกรณ์ของคุณ

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

วิธีที่สอง

คุณสามารถใช้ปลั๊กอิน Android Studio Android device with ADB

Android WiFi ADB - ปลั๊กอิน IntelliJ / Android Studio

ปลั๊กอิน IntelliJ และ Android Studio สร้างขึ้นเพื่อเชื่อมต่ออุปกรณ์ Android ของคุณผ่าน WiFi อย่างรวดเร็วเพื่อติดตั้งเรียกใช้และดีบักแอปพลิเคชันของคุณโดยไม่ต้องเชื่อมต่อ USB กดปุ่มเดียวแล้วลืมสาย USB ของคุณ

โปรดตรวจสอบบทความนี้สำหรับข้อมูลเพิ่มเติม

เชื่อมต่ออุปกรณ์ Android กับ Wifi ภายใน Android Studio


2

ฉันมีโครงสร้างที่ปัญหาเดียวกัน แต่แฮ็คง่าย adb reverse tcp:<PORT> tcp:<PORT>ทำงานได้สำหรับฉัน อนุญาตให้ระบบยอมรับการร้องขอ tcp

ขอบคุณสำหรับการอ่าน


1

ใช้แอพ adbwireless เพื่อเปิดใช้งานโทรศัพท์จากนั้นใช้ adb connect จากเครื่อง Windows เพื่อคุยกับมัน แอพไร้สายในโทรศัพท์บอกวิธีการเชื่อมต่อให้ที่อยู่ IP และทุกสิ่ง

ทางเลือกที่สนุกน้อยกว่าคือการเชื่อมต่อผ่าน USB บอกโทรศัพท์ให้ใช้ TCPIP ผ่าน adb tcpip 5555 แล้วถอดสาย USB ออกแล้วใช้การเชื่อมต่อ adb นี่เป็นเรื่องยากกว่าเพราะวิธีนี้คุณต้องหาที่อยู่ IP ของโทรศัพท์ด้วยตัวคุณเอง (adbwireless บอกคุณว่า IP) คุณต้องเชื่อมต่อผ่าน USB และคุณต้องเรียกใช้ adb tcpip (adbwireless ก็ดูแลเช่นกัน)

ดังนั้น: ติดตั้ง adbwireless บนโทรศัพท์ของคุณ ใช้มัน. เป็นไปได้ที่ฉันจะทำมันเป็นประจำบน Linux และบน Windows


1

ในระบบของฉันมันเป็นเช่นนี้:

บนอุปกรณ์ Android ของฉันในเปลือก Linux ของฉัน "ifconfig" แบบง่ายไม่ได้ให้ที่อยู่ IP ของฉัน ฉันต้องพิมพ์:

ifconfig eth0

-หรือ-

netcfg

เพื่อรับที่อยู่ IP ของฉัน (ฉันรู้ว่ามีการกำหนดค่า eth0 เพราะฉันเห็นใน dmesg ของฉัน) จากนั้นฉันก็ทำดังนี้

setprop service.adb.tcp.port -1

หยุด adbd

เริ่ม adbd

จากนั้นในกล่อง Win7 ของฉัน (หนึ่งที่รัน Eclipse 3.7.1) ฉันเปิดพรอมต์คำสั่งถึง

\ หุ่นยนต์ SDK \ แพลตฟอร์มเครื่องมือ>

โดยไม่ต้องเรียกใช้ในฐานะผู้ดูแลระบบ จากนั้นฉันก็ทำ

adb เชื่อมต่อ 12.345.678.90

ฉันไม่เคยใส่พอร์ต ถ้าฉันทำ

adb tcpip 5555

มันบอกว่าหาอุปกรณ์ไม่พบ แต่ไม่มีอะไรปรากฏในรายการ "อุปกรณ์ adb" ของฉัน คือใช้งานได้เฉพาะเมื่อฉันไม่ทำคำสั่ง tcpip ด้านบน

ฉันสามารถทำ "adb shell" และยุ่งกับอุปกรณ์ Android ของฉัน แต่อุปกรณ์ Android ของฉันไม่ปรากฏในแท็บ Run-> Run Configurations-> Target ตอนนี้ ในทางกลับกันถ้าฉันตั้งค่าแท็บเป้าหมายให้เป็นอัตโนมัติ จากนั้นเมื่อฉันเรียกใช้แอปของฉันผ่านทาง Run-> เรียกใช้มันจะทำงานบนอุปกรณ์ Android ของฉันแม้ว่าอุปกรณ์ Android ของฉันจะไม่ได้ระบุว่าเป็นหนึ่งในเป้าหมายของฉัน


1

ฉันทำงานนี้ให้เสร็จ ไม่ได้ใช้สายเคเบิล usb

  • แอป adb ไร้สาย
  • เรียกใช้ ที่จะตั้งค่า ip และพอร์ต; จากนั้นในโดส

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

เกี่ยวข้อง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.