1

ルートのない携帯電話の状態でミュート効果を実現したい。

private AudioManager myAudioManager = null;

        myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

        int ringerMode  = myAudioManager.getRingerMode();       
        myAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);

        myAudioManager.setRingerMode(ringerMode); 

上記の方法をテストします。一部の携帯電話に影響があります。そして他の携帯電話は効果がありません。なんで?

これ以外にミュートする他の方法はありますか?

4

1 に答える 1

1

バージョンSDKの問題がある可能性があります。ちなみに、Androidにはいくつかのストリームがありますが、どれをミュートしますか?このコードを試してください:

    AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
    audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 0, 0); // mute music stream
    audioManager.setStreamVolume(AudioManager.STREAM_RING, 0, 0); // mute ring stream
    if (Build.VERSION.SDK_INT >= 8) {
        audioManager.requestAudioFocus(null, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
        audioManager.requestAudioFocus(null, AudioManager.STREAM_RING, AudioManager.AUDIOFOCUS_GAIN);
    }
于 2013-03-12T08:48:56.153 に答える