2012-09-10 11 views
6

私はAndroidで開発中です。 ToggleButtonのビューを持っています。そのボタンを押すと、ToggleButtonが再び押されるまですべてのサウンドがオフになります。Androidですべての音をオフにする方法

現在、私はこのコードを持っています。ロギングイベントが発生しているのを確認できますが、サウンドはオフになっていません。誰かがいくつかの洞察力を提供できますか?

public void onToggleClicked(View view) { 
    Log.i("onToggleClicked", "ToggleClick Event Started"); 
    // Is the toggle on? 
    boolean on = ((ToggleButton) view).isChecked(); 

    if (on) { 
     Log.i("onToggleIsChecked", "ToggleClick Is On"); 
     //turn off sound, disable notifications 
     amanager.setStreamMute(AudioManager.STREAM_SYSTEM, true); 
     Log.i("STREAM_SYSTEM", "Set to true"); 
     //notifications 
     amanager.setStreamMute(AudioManager.STREAM_NOTIFICATION, true); 
     Log.i("STREAM_NOTIFICATION", "Set to true"); 
     //alarm 
     amanager.setStreamMute(AudioManager.STREAM_ALARM, true); 
     Log.i("STREAM_ALARM", "Set to true"); 
     //ringer 
     amanager.setStreamMute(AudioManager.STREAM_RING, true); 
     Log.i("STREAM_RING", "Set to true"); 
     //media 
     amanager.setStreamMute(AudioManager.STREAM_MUSIC, true); 
     Log.i("STREAM_MUSIC", "Set to true"); 

    } else { 
     Log.i("onToggleIsChecked", "ToggleClick Is Off"); 
     // turn on sound, enable notifications 
     amanager.setStreamMute(AudioManager.STREAM_SYSTEM, false); 
     Log.i("STREAM_SYSTEM", "Set to False"); 
     //notifications 
     amanager.setStreamMute(AudioManager.STREAM_NOTIFICATION, false); 
     Log.i("STREAM_NOTIFICATION", "Set to False"); 
     //alarm 
     amanager.setStreamMute(AudioManager.STREAM_ALARM, false); 
     Log.i("STREAM_ALARM", "Set to False"); 
     //ringer 
     amanager.setStreamMute(AudioManager.STREAM_RING, false); 
     Log.i("STREAM_RING", "Set to False"); 
     //media 
     amanager.setStreamMute(AudioManager.STREAM_MUSIC, false); 
     Log.i("STREAM_MUSIC", "Set to False"); 
    } 
    Log.i("onToggleClicked", "ToggleClick Event Ended"); 
} 

ありがとうございます!

+0

が、これは、HTTPをQUES CHK /stackoverflow.com/questions/7558650/how-to-set-volume-for-text-to-speech-speak-method –

+0

しかし、他のアプリケーションでもボリュームを変更できないように、どのようにすべてのサウンドを無効にすることができますか?私は他のアプリケーションからAudioManagerを完全に無効にする方法を意味します。 @SunnyKumarAditya –

答えて

7

私はそれがリスナー

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    //create the toggle button ref and instantiate 
    ToggleButton tb = (ToggleButton)this.findViewById(R.id.tglSetStatus); 
    tb.setTextOff(getString(R.string.available_status)); 
    tb.setTextOn(getString(R.string.driving_status)); 
    //default to being available 
    tb.setChecked(false); 
    // attach an OnClickListener 
    tb.setOnClickListener(new OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 
      // your click actions go here 
      Log.i("onToggleClicked", "ToggleClick Event Started"); 
      //an AudioManager object, to change the volume settings 
      AudioManager amanager; 
      amanager = (AudioManager)getSystemService(AUDIO_SERVICE); 

      // Is the toggle on? 
      boolean on = ((ToggleButton)v).isChecked(); 

      if (on) { 
       Log.i("onToggleIsChecked", "ToggleClick Is On"); 
       //turn ringer silent 
       amanager.setRingerMode(AudioManager.RINGER_MODE_SILENT); 
       Log.i("RINGER_MODE_SILENT", "Set to true"); 

       //turn off sound, disable notifications 
       amanager.setStreamMute(AudioManager.STREAM_SYSTEM, true); 
       Log.i("STREAM_SYSTEM", "Set to true"); 
       //notifications 
       amanager.setStreamMute(AudioManager.STREAM_NOTIFICATION, true); 
       Log.i("STREAM_NOTIFICATION", "Set to true"); 
       //alarm 
       amanager.setStreamMute(AudioManager.STREAM_ALARM, true); 
       Log.i("STREAM_ALARM", "Set to true"); 
       //ringer 
       amanager.setStreamMute(AudioManager.STREAM_RING, true); 
       Log.i("STREAM_RING", "Set to true"); 
       //media 
       amanager.setStreamMute(AudioManager.STREAM_MUSIC, true); 
       Log.i("STREAM_MUSIC", "Set to true"); 

      } else { 
       Log.i("onToggleIsChecked", "ToggleClick Is Off"); 

       //turn ringer silent 
       amanager.setRingerMode(AudioManager.RINGER_MODE_NORMAL); 
       Log.i(".RINGER_MODE_NORMAL", "Set to true"); 

       // turn on sound, enable notifications 
       amanager.setStreamMute(AudioManager.STREAM_SYSTEM, false); 
       Log.i("STREAM_SYSTEM", "Set to False"); 
       //notifications 
       amanager.setStreamMute(AudioManager.STREAM_NOTIFICATION, false); 
       Log.i("STREAM_NOTIFICATION", "Set to False"); 
       //alarm 
       amanager.setStreamMute(AudioManager.STREAM_ALARM, false); 
       Log.i("STREAM_ALARM", "Set to False"); 
       //ringer 
       amanager.setStreamMute(AudioManager.STREAM_RING, false); 
       Log.i("STREAM_RING", "Set to False"); 
       //media 
       amanager.setStreamMute(AudioManager.STREAM_MUSIC, false); 
       Log.i("STREAM_MUSIC", "Set to False"); 
      } 
      Log.i("onToggleClicked", "ToggleClick Event Ended"); 
     } 
    }); 

にイベントを変更して動作させることができた私は、これらの質問を見て、入力が見つかりました:How to turn off all sounds and vibration via Android API と、この1:/:attach onClickListener to ToggleButton

+1

しかし、他のアプリケーションでもボリュームを変更できないように、どのようにすべてのサウンドを無効にすることができますか?私は他のアプリケーションからAudioManagerを完全に無効にする方法を意味しますか? @briandus –

関連する問題