0

BroadcastReciver に次のコードがあり、何らかの理由で音量を 0 に設定しません。クリック イベントでボタンに接続された音量を設定する同じコードを配置すると、問題なく動作します。なぜこれが起こる可能性があるのか​​ について誰かが光を当てることができますか? if ステートメント内にログ メッセージを入れて表示したため、ブロードキャスト レシーバーが呼び出されていることがわかります。

public void onReceive(Context context, Intent intent) {
    int volume = CommonUtilities.getSharedPreferenceInt(context, CommonUtilities.PREF_FILE, CommonUtilities.PERCENT, -1);
    boolean savedSettings = CommonUtilities.getSharedPreferenceBoolean(context, CommonUtilities.PREF_FILE, CommonUtilities.SAVED_SETTINGS, false);

    if(volume >= 0 && savedSettings){
        Log.v(CommonUtilities.TAG, "Setting the audio");
        CommonUtilities.setSharedPreferenceBoolean(context, CommonUtilities.PREF_FILE, "SetAudio", true);
        AudioManager audioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
        audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 0, AudioManager.FLAG_SHOW_UI);
    }
}

これと同じコードを onClick イベントに入れると、問題なく動作します。音量が 0 に設定されており、0 に設定されていることを示す音量 UI が表示されます。

AudioManager audioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 0, AudioManager.FLAG_SHOW_UI);

助けてくれてありがとう!

4

0 に答える 0