2010-02-04 36 views
18

Làm cách nào để sử dụng adb để thực hiện một số tác vụ tự động trên điện thoại Android của tôi? Tôi cần phải tìm các lệnh mà tôi có thể phát hành từ dòng lệnh (lý tưởng, sử dụng một tập tin .bat) sẽ có khả năng hơn là mở một ứng dụng hoặc gửi một keyevent đầu vào (button press).Lệnh adb shell để thay đổi cài đặt hoặc thực hiện tác vụ trên điện thoại

Ví dụ: tôi muốn bật hoặc tắt Chế độ trên máy bay từ dòng lệnh. Hiện nay, tốt nhất mà tôi có thể làm là khởi động không dây & menu cài đặt mạng và sau đó sử dụng keyevents đầu vào bấm chế độ trên máy bay:

adb shell am start -a android.settings.AIRPLANE_MODE_SETTINGS 
adb shell input keyevent 19 & adb shell input keyevent 23 

Có khá một vài nhược điểm với phương pháp này, chủ yếu là màn hình phải được trên và mở khóa. Ngoài ra, các tác vụ tôi muốn làm rộng hơn nhiều so với ví dụ đơn giản này. Những việc khác tôi muốn làm nếu có thể:

1. Phát mp3 và đặt lại. Giải pháp hiện tại:

adb shell am start -n com.android.music/.MusicBrowserActivity 
adb shell input keyevent 84 
adb shell input keyevent 56 & adb shell input keyevent 66 & adb shell input keyevent 67 & adb shell input keyevent 19 
adb shell input keyevent 23 & adb shell input keyevent 21 
adb shell input keyevent 19 & adb shell input keyevent 19 & adb shell input keyevent 19 & adb shell input keyevent 22 & adb shell input keyevent 22 & adb shell input keyevent 23 & adb shell input keyevent 23 

2. Phát video. (Giải pháp hiện tại: mở MediaGallery, gửi keyevents, tương tự như trên)

3.Change khối lượng (giải pháp hiện tại: gửi keyevents nút âm lượng-up)

4.Change thời gian chờ màn hình (giải pháp hiện tại: âm thanh mở & cài đặt hiển thị, gửi keyevents)

Như trước đây, tất cả đều yêu cầu màn hình bật và mở khóa. Hạn chế lớn khác khi sử dụng keyevents là nếu giao diện người dùng của ứng dụng bị thay đổi, các keyevents sẽ không thực hiện đúng chức năng nữa. Nếu không có cách nào dễ dàng hơn để làm những điều này, thì có ít nhất một cách để bật màn hình (sử dụng adb) khi nó tắt không? Hoặc để có các keyevents vẫn hoạt động khi màn hình tắt?

Tôi không quen với java. Điều đó nói rằng, tôi đã nhìn thấy mã như sau (nguồn: http://yenliangl.blogspot.com/2009/12/toggle-airplane-mode.html) để thay đổi một thiết lập trên điện thoại:

Settings.System.putInt(Settings.System.AIRPLANE_MODE_ON, 1 /* 1 or 0 */); 

Làm thế nào để dịch một cái gì đó giống như trên vào một lệnh adb shell? Điều này có thể, hoặc là cách sai lầm để suy nghĩ về nó?

Tôi có thể cung cấp thêm chi tiết nếu cần. Cảm ơn!

Trả lời

0

Ví dụ Java bạn hiển thị là cho một chương trình đang chạy trên chính điện thoại. Bạn có thể lập trình một số loại thông dịch viên trên điện thoại xử lý các lệnh adb. Bằng cách đó bạn không còn phụ thuộc vào các keyevents nữa. Tuy nhiên, đây không phải là một cam kết nhỏ.

3

Tôi đang làm việc trên cùng một bộ vấn đề. (Tôi chủ yếu giải quyết vấn đề bối cảnh bằng cách nhấn nút thẳng bằng cách sử dụng HOME chính và sau đó là MENU, nhưng - bằng cách nào đó - thậm chí không đáng tin cậy.) Tôi hiện đang điều tra SL4A (Scripting Layer for Android), có lời hứa. Nó cho phép Perl, Python, Lua và các ngôn ngữ kịch bản khác tương tác với API Android từ máy tính của bạn sau khi khởi động máy chủ SL4A trên thiết bị - cũng có thể được thực hiện từ PC. Tôi đang tìm "Pro Android Python with SL4A" để trở thành một tài nguyên tuyệt vời; Tôi đã tự cứu mình trong những ngày thử và lỗi trên mạng nếu tôi đã bắt đầu với cuốn sách đó

-2

MonkeyRunner cũng có vẻ như đã hứa, mặc dù tôi chưa đào sâu đủ để tìm giới hạn của nó.

Android ScreenCast cho phép bạn xem và điều khiển màn hình thiết bị của mình từ PC, cũng có khả năng tự động hóa. Nó có một số vấn đề hậu cần cho ứng dụng đó, mặc dù.

Nhân tiện, bạn có thể vượt qua màn hình chính bị khóa bằng phím MENU và một bộ người gửi (thay cho các keyevents).

15

Mặc dù câu hỏi cũ, nó có thể giúp người khác.

Đối với phát lại video, bạn có thể thử này:

adb shell am start -a android.intent.action.VIEW -d "file:///mnt/sdcard/DCIM/Camera/test.3gp" -t "video/*" 

^mang đến cho bạn một dấu nhắc của tất cả các khả năng players, có thể chơi các tập tin này.

adb shell am start -a android.intent.action.VIEW -d "file:///mnt/sdcard/DCIM/Camera/test.3gp" -t "video/*" -n "com.alensw.PicFolder/.PlayerActivity" 

^lượt phát trong trình phát được chỉ định bởi switch -n.

+0

tốt nhất..thanks for nice info – Naresh

Các vấn đề liên quan