监听电话状态,调节音量

来源:互联网 发布:淘宝新开店铺有扶持吗 编辑:程序博客网 时间:2024/05/21 08:39

当接听电话或者打出电话时,希望能够将自己的应用声音调小,如何实现呢

public void onReceive(Context context, Intent intent) {// TODO Auto-generated method stubctx = context;if(first){AudioManager audiomanager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);currentVol = audiomanager.getStreamVolume(AudioManager.STREAM_MUSIC);first = false;}if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {String incoming_number = getResultData(); //可以获得拨出的电话号码setVolume(0);}else{//其余的android.intent.action.PHONE_STATETelephonyManager tm = (TelephonyManager)context.getSystemService(Service.TELEPHONY_SERVICE);switch (tm.getCallState()) {case TelephonyManager.CALL_STATE_RINGING: //来电,响铃{setVolume(0);break;}case TelephonyManager.CALL_STATE_OFFHOOK:  //拨出电话和接听来电break;case TelephonyManager.CALL_STATE_IDLE:   //空闲状态setVolume(currentVol);first = true;break;default:break;}}private void setVolume(int vol) {if(null != ctx){AudioManager audiomanager = (AudioManager) ctx.getSystemService(Context.AUDIO_SERVICE);audiomanager.setStreamVolume(AudioManager.STREAM_MUSIC, vol, 0);}}

第一次电话状态改变的时候,记录当前音量,电话处于空闲状态是再设置回来。

原创粉丝点击