2014-04-02 15 views
9

Trong Android 4.0+ có một tùy chọn Cài đặt-> Khả năng truy cập-> Bật tất cả các âm thanh. Nếu tôi kiểm tra tùy chọn đó, mọi ứng dụng đang chạy trên thiết bị Android sẽ không tạo ra âm thanh nào cả. Ứng dụng của tôi phải cung cấp âm thanh báo động, vì vậy nếu ai đó đã chọn tùy chọn đó, ứng dụng sẽ không phát ra âm thanh nào. Vì vậy, tôi phải tự động bỏ chọn tùy chọn đó mỗi khi người dùng khởi chạy ứng dụng. Thông qua mã, tôi có thể làm như thế nào?Làm thế nào để bật/tắt tất cả âm thanh từ cài đặt trợ năng lập trình trong Android?

Sẽ rất hữu ích nếu ai đó có thể chia sẻ một đoạn mã. Tôi đã thử AudioManager, nhưng điều đó chỉ hoạt động nếu âm thanh di động được bật.

amanger.setRingerMode(AudioManager.RINGER_MODE_NORMAL); 

amanger.setStreamMute(AudioManager.STREAM_MUSIC, false); 

amanger.setStreamVolume(AudioManager.STREAM_MUSIC, 
    (int)(amanger.getStreamMaxVolume(AudioManager.STREAM_MUSIC)*(75.0/100.0)), 0); 
+0

Không có tùy chọn "Settings-> Accessibility-> Turn of all sounds" trong kho Android. Đây là một tùy biến của nhà cung cấp, và có lẽ không có cách nào xung quanh nó. Ngoài ra, nếu người dùng đã chỉ định "tắt âm thanh" vì lý do trợ năng, bạn nên tôn trọng tùy chọn của họ và tìm một số cách khác để cảnh báo họ mà không cần sử dụng âm thanh. – alanv

+0

Tôi có thể mua lời khuyên đó.Cảm ơn bạn. – akash89

+0

Hey @alanv, tôi khuyên bạn nên đăng câu trả lời đó. Trong khi nó không thực sự giải quyết câu hỏi ban đầu của OP, đó là câu trả lời đúng. – Jordan

Trả lời

2

Bạn có thể sử dụng chức năng sau đây để vô hiệu hóa hệ thống khối lượng

public static void disableSound(Context context) 
{ 
    AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); 
    audioManager.setStreamVolume(AudioManager.STREAM_SYSTEM, 0, 0); 
} 

Nếu bạn muốn kích hoạt nó một lần nữa, chỉ cần thay đổi các thông số

audioManager.setStreamVolume(AudioManager.STREAM_SYSTEM, 10, 0); 

dãy Khối lượng 0-10

+0

"AudioManager.STREAM_SYSTEM" có thể giúp bạn –

+0

Rất tiếc. Tôi cảm thấy bạn không hoàn toàn hiểu được truy vấn của tôi. – akash89

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