Làm thế nào tôi có thể thay đổi âm lượng từ xa?


9

Ở nhà tôi thường kết nối Android của mình với một số loa, để nghe radio-internet. Nó muốn có thể thay đổi mức âm thanh thông qua một lệnh trên máy tính xách tay của tôi.

Tôi có thể mở vỏ ssh cho điện thoại, nhưng tôi bị kẹt khi tìm lệnh thay đổi âm lượng trên Android.

Có một lệnh để thay đổi âm lượng âm thanh trên Android-shell? Hoặc có thể có một cách tiếp cận khác mà không có ssh mà tôi đã bỏ lỡ hoàn toàn?

Tôi đang chạy Android 4.1.

Biên tập

Câu trả lời được chấp nhận sẽ hoạt động cho các thiết bị đã root. Tôi vẫn muốn nhận được câu trả lời cho một thiết bị chưa được đăng ký.

Câu trả lời:


13

Hãy xem mô phỏng các khóa chính trên Android và tìm kiếm "KEYCODE_VOLUME_UP" và "KEYCODE_VOLUME_DOWN".

Sự kiện có thể được tạo bằng cách thực hiện "đầu vào":

#local shell:
input keyevent 24 #vol up
input keyevent 25 #vol down
#remotely using ssh
ssh your-phone input keyevent 24 #vol up
ssh your-phone input keyevent 25 #vol down

# 'su -c command' to make it run as root (if not already). EDIT: now escaped properly.
ssh your-phone su -c "input\ keyevent\ 24" #vol up
ssh your-phone su -c "input\ keyevent\ 25" #vol down"

Vỏ của bạn cần quyền thích hợp nhất có lẽ để bắn các sự kiện đầu vào tôi đoán. Nếu bạn thực hiện xác thực khóa công khai và giữ khóa riêng của bạn được tải trong bộ nhớ (ssh-add), bạn có thể tạo tập lệnh trình bao bọc và chỉ cần thực hiện điều này mà không cần yêu cầu mật khẩu. Lưu ý: Có một chi phí đáng kể cho cả 'su' và 'đầu vào', tất cả trong một điều chỉnh âm lượng duy nhất mất 2,5 giây để hoàn thành trên HTC Desire của tôi.

EDIT2:

shell@android:/ $ id
uid=2000(shell) gid=2000(shell) groups=1003(graphics),1004(input),[...]
shell@android:/ $ time input keyevent 24                                       
    0m0.92s real     0m0.29s user     0m0.06s system

Có vẻ như bạn phải là thành viên của nhóm đầu vào (ở đây GID = 2004) để có khả năng tạo ra các khóa chính bằng cách sử dụng 'đầu vào'. Ngoài ra, tôi nhận thấy rằng màn hình không bị khóa (và / hoặc tắt), vì khóa cuối cùng sẽ tiêu thụ tất cả các thiết bị quan trọng. Cũng lưu ý rằng lệnh mất gần 1 giây.


Điều này có vẻ rất hứa hẹn. Các lệnh được chấp nhận bởi shell mà không bị lỗi, nhưng âm lượng không thay đổi. Tôi có thể sẽ phải chơi thêm một chút với quyền của mình.
mirk

nó hoạt động với tôi (sử dụng điện thoại được kết nối cục bộ thông qua "adb shell" với root). Rất có thể đó là một câu hỏi về quyền. Có thể nhìn vào logcat nếu có một số đầu ra về các cuộc gọi 'đầu vào' bị từ chối
ce4

Không: Tôi không nghĩ rằng tôi có quyền truy cập root. Ngoài ra, nó cho tôi biết 'không tìm thấy' khi chạy với tư cách là người dùng Android. Logcat cho đầu ra sau : I/Input ( 2502): InjectKeyEvent: KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_VOLUME_UP, scanCode=0, metaState=0, flags=0x0, repeatCount=0, eventTime=399847, downTime=399847, deviceId=-1, source=0x101 } I/Input ( 2502): InjectKeyEvent: KeyEvent { action=ACTION_UP, keyCode=KEYCODE_VOLUME_UP, scanCode=0, metaState=0, flags=0x0, repeatCount=0, eventTime=399847, downTime=399847, deviceId=-1, source=0x101 }. Tôi phải thêm rằng tôi là người mới sử dụng Android.
mirk

Ok, tôi không phải là thành viên của nhóm đầu vào (1004). Tôi sẽ root thiết bị của mình một ngày và thử lại.
mirk

Phải có một tùy chọn để không cần root, như (mis) sử dụng tasker với ý định đó (tasker rất có thể có các quyền cần thiết cho hầu hết mọi thứ ...)
ce4
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.