【问题标题】:Android mute/unmute phoneAndroid静音/取消静音手机
【发布时间】:2011-09-06 09:49:17
【问题描述】:

我的目标是支持 2 个操作:

  • 静音手机(可能启用/禁用振动),因此当收到电话或短信时不会发出噪音

  • 取消静音并将音量恢复到静音前的状态

我该怎么做? AndroidManifest 需要哪些权限?

【问题讨论】:

    标签: android android-permissions volume mute


    【解决方案1】:

    这是振动进入清单文件的权限

    <uses-permission android:name="android.permission.VIBRATE" />
    

    这是为了让设备进入静音模式并振动

    AudioManager audioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
    audioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
    

    这是为了进入振铃模式

    AudioManager audioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
    int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_RING);
    
    audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
    audioManager.setStreamVolume(AudioManager.STREAM_RING, maxVolume, AudioManager.FLAG_SHOW_UI + AudioManager.FLAG_PLAY_SOUND);
    

    【讨论】:

    【解决方案2】:
    public void changeRingerMode(Context context){
    
    AudioManager audio = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
    
        /**
        * To Enable silent mode.....
        */
        audio.setRingerMode(AudioManager.RINGER_MODE_SILENT);
    
        /**
        * To Enable Ringer mode.....
        */
        audio.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
    
    }
    

    【讨论】:

      【解决方案3】:

      如果您想要禁用声音并将声音设置恢复到以前的状态,这对我有用。

      static int ringstate = 0;
      private void soundOn(boolean off){
      AudioManager audio = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
         if(off)
          {   //turn off ringing/sound
           //get the current ringer mode
           ringstate = audio.getRingerMode();
           if(ringstate!=AudioManager.RINGER_MODE_SILENT)
            audio.setRingerMode(AudioManager.RINGER_MODE_SILENT);//turn off
          }
        else
        {
          //restore previous state
          audio.setRingerMode(ringstate);
      
      
        }
      
      }
      

      应该这样做。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-07-19
        • 1970-01-01
        • 2011-04-13
        • 1970-01-01
        • 2022-10-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多