2016-05-05 2 views

ответ

-1

Так я выполнил эту задачу. Сначала я беру исходные настройки. После окончания и после того, как пользователь отклонит уведомление, я вызываю другую функцию, чтобы вернуть настройки. Вот код для окончания звучания:

public static void graduateVolumeLevel(Context context) { 
    getVolumeLevel(context); 
    final AudioManager mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); 
    final int DELAY_UNTIL_NEXT_INCREASE = 6 * 1000; 

    LaunchService.startThread(); 

    mHandlerIncreaseVolume = new Handler(appService.thread.getLooper()); 
    /*you may not need this part. 
    I use it b/c i run my stuff on another thread not to 
    interfere with the main thread. 
    Creating a new handler on main thread may be sufficient for your needs.*/ 

    if(runnable==null) { 
     runnable = new Runnable() { 
      @Override 
      public void run() { 
       int currentSystemVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_SYSTEM); 
       int currentRingVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_RING); 

       if (currentSystemVolume != mAudioManager.getStreamMaxVolume(AudioManager.STREAM_SYSTEM)|| 
         currentRingVolume != mAudioManager.getStreamMaxVolume(AudioManager.STREAM_RING)) { //if not max 
        //increase the volume of the alarm stream 
        mAudioManager.setStreamVolume(AudioManager.STREAM_RING,currentRingVolume++,0); 
        mAudioManager.setStreamVolume(AudioManager.STREAM_SYSTEM, currentRingVolume++, 0); 

        if(mHandlerIncreaseVolume!=null) 
        mHandlerIncreaseVolume.postDelayed(this, DELAY_UNTIL_NEXT_INCREASE); 
       } 
      } 
     }; 
    } 

    mHandlerIncreaseVolume.post(runnable); 
} 

я нашел подобную проводку, но не удалось найти его снова, чтобы ссылаться на него. Это то, что я использовал для создания своего кода с небольшими изменениями, потому что пример не работал точно так, как есть. Также, как только я возвращаю исходные настройки, я удаляю обратные вызовы из обработчика и устанавливаю его в null.

Смежные вопросы