2014-05-11 1 views
0

안드로이드 장치의 모든 소리와 진동을 비활성화하고 싶습니다. 비슷한 질문에 대한 답변에 따라, 나는 현재 모든 오디오 스트림을 소거하려면 다음 코드를 사용하고로서, 무음 벨소리 모드를 설정하고, 가짜 음성 통화 시나리오 :안드로이드에서 모든 소리와 진동을 프로그램 적으로 사용 중지하십시오.

AudioManager amanager=(AudioManager)getSystemService(Context.AUDIO_SERVICE); 
    //DOESNT DISABLE ALARM CLOCK 
    amanager.setStreamMute(AudioManager.STREAM_NOTIFICATION, true); 
    amanager.setStreamMute(AudioManager.STREAM_ALARM, true); 
    amanager.setStreamMute(AudioManager.STREAM_RING, true); 
    amanager.setStreamMute(AudioManager.STREAM_SYSTEM, true); 
    amanager.setStreamMute(AudioManager.STREAM_DTMF, true); 
    amanager.setStreamMute(AudioManager.STREAM_MUSIC, true); 
    amanager.setStreamMute(AudioManager.STREAM_VOICE_CALL, true); 
    //disables vibrate and sound of ringer 
    amanager.setRingerMode(AudioManager.RINGER_MODE_SILENT); 
    //fakes voice call...changes alarm to single tone+vibrate 
    amanager.setMode(AudioManager.MODE_IN_CALL); 
    amanager.setStreamSolo(AudioManager.STREAM_VOICE_CALL, true); 

이 음악을 사용하지 않도록 작동 덧글에 언급 된 것처럼 안드로이드의 내장 알람 시계 앱은 여전히 ​​소리와 진동을 생성 할 수 있습니다.

누구나 진정한 소리와 진동을 비활성화하는 방법을 알고 있습니까? 또는 알람 시계 앱이 왜 오디오 스트림을 우회하여 보이는 것일까 요?

+0

당신은이에 대한 해결책을 찾았나요? – Vero

+0

@Vero 아니, 내가 한 적이 없어 – user3624874

+0

아마도이게 도움이 될 것입니다. 묻고 난 후에, 나는 경보를 음소거하는 방법을 발견했다. setStreamMute를 무시했지만 setStreamVolume을 사용하여 STREAM_ALARM에 0을 적용했습니다. 나중에 알람 볼륨을 복원해야합니다. – Vero

답변

0

setStreamMute가 알람을 음소거하기 위해 작동하지 않았지만 STREAM_ALARM에 볼륨을 0으로 설정하기 위해 setStreamVolume을 사용했습니다. 나중에 알람 볼륨을 복원해야합니다.

이 같은 예를 들어

AudioManager manager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);  
manager.setStreamVolume(AudioManager.STREAM_ALARM, 0, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE); 
관련 문제