หากคุณกำลังพัฒนาเครื่องมือ Automation สำหรับมือถือ Android หรืออยากควบคุมหน้าจอมือถือผ่าน Python บทความนี้คือจุดเริ่มต้นที่เหมาะสำหรับคุณที่สุด ไม่ว่าจะเป็นสาย Dev, Tester หรือ Creator ที่ต้องการสร้างระบบอัตโนมัติ เช่น การกดปุ่มในแอป, ทดลองฟีเจอร์, หรือทดสอบเกมบน Android การใช้คำสั่ง adb shell input tap จะช่วยให้คุณสามารถ แตะหน้าจอมือถือด้วย Python ได้อย่างแม่นยำ โดยไม่ต้องใช้นิ้วแตะเองหรือมีการ root เครื่องแต่อย่างใด
คำสั่งนี้สามารถนำไปใช้ได้ทั้งในโปรเจกต์เล็ก เช่น ทดสอบ UI แอป หรือในระบบควบคุม Android ระยะไกลผ่าน GUI หรือ API เช่น Flask, FastAPI หรือแม้แต่ผูกกับ scrcpy เพื่อดูผลลัพธ์แบบเรียลไทม์ ผู้ใช้งานสามารถตั้งพิกัด X,Y ที่ต้องการแตะ พร้อมระบุอุปกรณ์ที่เชื่อมผ่าน ADB ด้วย device_id ได้ทันที บทความนี้จะพาคุณไปรู้จักแนวคิดเบื้องหลังคำสั่งอย่างเป็นขั้นตอน พร้อมอธิบายความหมาย การใช้งานจริง และเทคนิคเสริมที่ช่วยให้ Automation ทำงานได้อย่างราบรื่น
![]() |
📲 คำสั่ง Python สำหรับแตะหน้าจอมือถือด้วย ADB |
ใครที่กำลังค้นหาวิธี ควบคุม Android ด้วย Python, ADB automation script, หรืออยากเรียนรู้คำสั่ง input tap ADB คืออะไร บทความนี้มีคำตอบครบจบในที่เดียว 🎯
คำสั่งที่ใช้คืออะไร?
```python
def tap(device_id, x, y):
print(f"👉 แตะตำแหน่ง ({x}, {y}) บนอุปกรณ์ {device_id}")
subprocess.run(["adb", "-s", device_id, "shell", "input", "tap", str(x), str(y)])
```
🔍 อธิบายทีละบรรทัด
- `device_id`: คือรหัสอุปกรณ์ที่เชื่อมต่อผ่าน ADB เช่น `"emulator-5554"` หรือ `"R3CT123456"`
- `x, y`: ตำแหน่งพิกัดที่ต้องการแตะบนหน้าจอ (พิกัดจากซ้ายบนจอเป็นจุดเริ่มต้น)
- `subprocess.run(...)`: ใช้ Python สั่งให้เรียกคำสั่ง ADB ไปยังอุปกรณ์เป้าหมายเพื่อแตะหน้าจอ
- `adb shell input tap x y`: เป็นคำสั่งของ ADB ที่บอกให้อุปกรณ์แตะหน้าจอที่พิกัดนั้น
⚙️ แนวทางการใช้งานจริง
- ใช้ใน **ระบบอัตโนมัติ** เช่น ทดสอบแอป, กดปุ่มในเกม, สั่งงานซ้ำ ๆ แบบไม่ต้องแตะเอง
- นำไปผูกกับ **สคริปต์ scrcpy** เพื่อดูการทำงานแบบเรียลไทม์
- สามารถผูกกับ GUI หรือระบบควบคุมระยะไกล เช่น ใช้ผ่าน Flask / FastAPI ก็ได้
📐 จะหาค่า x และ y จากตรงไหน?
คุณสามารถใช้คำสั่งนี้เพื่อดูขนาดหน้าจอ:
```bash
adb shell wm size
```
หรือเปิด scrcpy แล้วใช้เมาส์คลิกดูตำแหน่งพิกัดผ่าน overlay tools ก็แม่นสุด ๆ
📦 เคล็ดลับเสริม:
- ถ้าใช้หลายเครื่องพร้อมกัน ต้องระบุ `-s device_id` เสมอ
- ควรตรวจสอบว่าเปิด Developer Mode และ USB Debugging แล้ว
- อย่าลืมใช้ `time.sleep()` หากต้องเว้นช่วงการกดหลายครั้ง
ไม่มีความคิดเห็น:
แสดงความคิดเห็น