โค้ดนี้ช่วยให้เราดึงข้อมูลอุปกรณ์ Android ที่เชื่อมต่อกับคอมพิวเตอร์ผ่าน ADB ด้วย Python พร้อมตรวจสอบสถานะเซิร์ฟเวอร์และเก็บข้อมูลอุปกรณ์ที่ใช้งานอยู่ เช่น UDID, รุ่นเครื่อง, และเวอร์ชัน Android หากต้องการไฟล์สำเร็จของโค้ด ลิงค์โหลดอยู่ด้านล่างนะครับ
![]() |
ตรวจสอบอุปกรณ์ Android ด้วย Python + ADB |
ส่วนที่ 1: ตั้งค่า Path และตรวจสอบ ADB server
python:
ADB_PATH = os.path.join(os.getcwd(), "plaform-tools", 'adb.exe')
- กำหนดตำแหน่งไฟล์ `adb.exe` ตาม path ของเครื่องผู้ใช้งาน
- ใช้ 'os.getcwd()' เพื่ออ้างอิง path ปัจจุบัน แล้วเชื่อมต่อกับโฟลเดอร์ 'plaform-tools'
python:
result = subprocess.run([ADB_PATH, "devices"], capture_output=True, text=True)
- รันคำสั่ง 'adb devices' เพื่อดูว่า server ADB กำลังทำงานหรือไม่
- เก็บผลลัพธ์ไว้ในตัวแปร 'result'
python:
if "List of devices attached" in result.stdout:print("ADB is running.")else:subprocess.run([ADB_PATH, "start-server"])
- ถ้าเจอคำว่า '"List of devices attached"' แสดงว่า server ทำงานแล้ว
- ถ้าไม่เจอ ให้สั่งเปิด server ด้วย 'start-server'
ส่วนที่ 2: ดึงข้อมูลอุปกรณ์ที่เชื่อมต่อ
python:
result = subprocess.run(['adb', 'devices', '-l'], capture_output=True, text=True)lines = result.stdout.strip().split("\n")
- เรียกคำสั่ง 'adb devices -l' เพื่อดึงรายละเอียดอุปกรณ์
- 'split("\n")' ใช้แยกผลลัพธ์ออกเป็นบรรทัด เพื่อง่ายต่อการวนลูป
ส่วนที่ 3: วนลูปตรวจจับอุปกรณ์ และจัดเก็บข้อมูล
python:
devices = []for line in lines[1:]: # ข้ามหัวตารางif 'device' in line:parts = line.split()
- วนลูปแต่ละบรรทัด (เว้นหัวตาราง)
- ตรวจว่าเป็นอุปกรณ์ที่อยู่ในสถานะ 'device' (เชื่อมต่อสำเร็จ)
python:
device_info = { 'udid': parts[0], 'platformName': 'Android'}
- เก็บ UDID และ platform เป็น Android
python:
device_info['deviceName'] = next((part.split(':')[1] for part in parts if part.startswith('model:')), 'Unknown')
- ใช้ list comprehension เพื่อหาค่า 'mode:' แล้วแยกข้อมูล
python:
device_info['platformVersion'] = subprocess.run(['adb', '-s', parts[0], 'shell', 'getprop', 'ro.build.version.release'],capture_output=True, text=True).stdout.strip()
- รันคำสั่ง 'getprop' บนอุปกรณ์เพื่อหาว่า Android ใช้เวอร์ชันอะไร
- เก็บลงใน key ''platformVersion''
python:
devices.append(device_info)
- เพิ่มข้อมูลอุปกรณ์ลงใน list 'devices' สำหรับใช้ต่อหรือแสดงผล
ส่วนที่ 4: แสดงผลลัพธ์อุปกรณ์ที่พบ
python:
print(devices)print(devices[0]['udid'])print(devices[0]['platformVersion'])
- แสดงรายการอุปกรณ์ทั้งหมดที่เชื่อมต่อ
- แสดง UDID และ Android version ของเครื่องแรกในรายการ
โค้ดนี้เป็นตัวอย่างที่ดีในการเขียน Python เพื่อสื่อสารกับอุปกรณ์ Android ผ่าน ADB เหมาะกับการนำไปใช้ในระบบ automation, การตรวจสอบอุปกรณ์สำหรับการทดสอบ, หรือแม้แต่การสร้างเครื่องมือควบคุมหลายอุปกรณ์พร้อมกัน
องค์ประกอบสำคัญที่ต้องดาวน์โหลด
องค์ประกอบสำคัญที่ต้องดาวน์โหลด
- Operating System เลือกแบบ Windows หรือตามระบบที่คุณมี
- Version เลือก Windows x86-64 web-based installer
- ให้โหลดส่วนที่เป็น Community Edition เหมาะสำหรับผู้เริ่มต้นและใช้งานทั่วไป
- ดาวน์โหลดและติดตั้งเสร็จแล้ว ให้สร้างโปรเจคใน IDE แล้วค่อยทำขั้นตอนต่อไป
- ไม่ต้องติดตั้ง เพียงแค่แตกไฟล์ ZIP แล้วใช้งานได้ทันที
- รวมเครื่องมือสำคัญ เช่น adb, fastboot, logcat
- นำโฟลเดอร์ที่แตกไฟล์ไปวางไว้ในโฟลเดอร์โปรเจค
- เลือกเวอร์ชันล่าสุด เช่น scrcpy-win64-v3.3.1.zip สำหรับ Windows
- รองรับ Windows, macOS และ Linux
- ไม่ต้อง root เครื่อง Android
- ใช้ ADB ในการเชื่อมต่อผ่าน USB หรือ TCP/IP
- นำโฟลเดอร์ที่แตกไฟล์ไปวางไว้ในโฟลเดอร์โปรเจค
- ต้องติดตั้งองค์ประกอบข้างบนให้ครบก่อน ถึงดาวน์โหลดไฟล์ไปใช้งานได้
![]() |
สั่งซื้อ USB HUB ผ่านช้อปปี้แอป |
ไม่มีความคิดเห็น:
แสดงความคิดเห็น