系统音量变化监听

/**<p>项目名:HFIOT_integration</p>
 * <p>包名:	com.nb82.bean</p>
 * <p>文件名:AudioManagerBean.java</p>
 * <p>版本信息: 2.1.0</p>
 * <p>日期: 2015/5/26/16:48.</p>
 * Copyright (c) 2015帮你公司-版权所有
 */
package com.nb82.bean;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.util.Log;

/**
 * <p>名称:com.nb82.bean.AudioManagerBean</p>
 * <p>描述:系统音量变化监听</p>
 * <pre>
 *      处理系统的音量变化的操作
 * </pre>
 *
 * @author 鲍建明
 * @version 2.1.0
 * @date 2015/5/26/16:48
 */
public class AudioManager {

    private android.media.AudioManager mAudioManager;

    public AudioManager(Context context){
        IntentFilter filter = new IntentFilter() ;
        filter.addAction("android.media.VOLUME_CHANGED_ACTION") ;
        VolumeReceiver vr = new VolumeReceiver();
        context.registerReceiver(vr, filter);
        //音量控制,初始化定义
        mAudioManager = (android.media.AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
    }

    /**
     *   显示系统声音进度条
     */
    public void showVolume(){
        mAudioManager.adjustStreamVolume(android.media.AudioManager.STREAM_MUSIC, android.media.AudioManager.FLAG_SHOW_UI,
            android.media.AudioManager.FX_FOCUS_NAVIGATION_UP);
    }


    /**
     * 声音变化广播器
     */
    class VolumeReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            //如果音量发生变化则更改seekbar的位置
            if(intent.getAction().equals("android.media.VOLUME_CHANGED_ACTION")){
                Log.w("android.media.VOLUME_CHANGED_ACTION", "用户调节声音了...");
                int currentVolume = mAudioManager.getStreamVolume(android.media.AudioManager.STREAM_MUSIC);
                //TODO  根据当前音量进行其他的业务操作
            }
        }
    }


}


你可能感兴趣的:(系统音量变化监听)