2016-05-05 6 views

Antwort

-1

So habe ich diese Aufgabe ausgeführt. Zuerst nehme ich die ursprünglichen Einstellungen auf. Nach dem Abschluss des und sobald der Benutzer die Benachrichtigung abmeldet, rufe ich eine andere Funktion auf, um die Einstellungen zurückzugeben. Hier ist der Code für den Abschluss des Klangs:

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); 
} 

Ich fand einen ähnlichen Beitrag, aber konnte es nicht wieder finden, um es zu verweisen. Es ist, was ich verwendet habe, um meinen Code zu erstellen, mit einer leichten Änderung von mir, weil das Beispiel nicht genau so funktionierte wie es ist. Auch wenn ich die ursprünglichen Einstellungen zurückgebe, entferne ich Callbacks vom Handler und setze ihn auf null.

Verwandte Themen