package me.pjq.pushup.audio; import android.content.Context; import android.media.AudioManager; public class AudioFocusHelper implements AudioManager.OnAudioFocusChangeListener { AudioManager mAudioManager; Context mContext; RecorderAndPlaybackAudioRecorderImpl.OnAudioFocusChangeListener mListener; // other fields here, you'll probably hold a reference to an interface // that you can use to communicate the focus changes to your Service public AudioFocusHelper(Context ctx, RecorderAndPlaybackAudioRecorderImpl.OnAudioFocusChangeListener listener) { mContext = ctx; mListener = listener; mAudioManager = (AudioManager) mContext .getSystemService(Context.AUDIO_SERVICE); } public boolean requestFocus() { return AudioManager.AUDIOFOCUS_REQUEST_GRANTED == mAudioManager .requestAudioFocus(this, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN); } public boolean abandonFocus() { return AudioManager.AUDIOFOCUS_REQUEST_GRANTED == mAudioManager .abandonAudioFocus(this); } @Override public void onAudioFocusChange(int focusChange) { if (null != mListener) { mListener.onAudioFocusChange(focusChange); } } }