在音乐播放时电话打进来当然不希望音乐和来电铃声一同在响,所以下面的代码能解决此问题。



在 MusicPlayService中先创建一个电话状态监听的方法

  /**     * 电话状态监听事件     */    private boolean mResumeAfterCall = false;    private PhoneStateListener mPhoneStateListener = new PhoneStateListener() {        @Override        public void onCallStateChanged(int state, String incomingNumber) {            if (state == TelephonyManager.CALL_STATE_RINGING) {                AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);                int ringvolume = audioManager                        .getStreamVolume(AudioManager.STREAM_RING);                if (ringvolume > 0) {                    mResumeAfterCall = (getMusicPlayState() || mResumeAfterCall);                    //当电话打进来时,就设置为停止播放状态                    getAireMusicPlay().setPlayStatus(false);                }            } else if (state == TelephonyManager.CALL_STATE_OFFHOOK) {                // pause the music while a conversation is in progress                mResumeAfterCall = (getMusicPlayState() || mResumeAfterCall);                getAireMusicPlay().setPlayStatus(false);            } else if (state == TelephonyManager.CALL_STATE_IDLE) {                // start playing again                if (mResumeAfterCall) {
//当电话挂断是时,就设置为播放状态
getAireMusicPlay().setPlayStatus(true); mResumeAfterCall = false; } } } };

   
   
在MusicPlayService的onCreate()方法中
@Override    public void onCreate() {          //电话监听的主要这两句        TelephonyManager tmgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);        tmgr.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);    }


   
在MusicPlayService的onDestroy()方法中
public void onDestroy() {               TelephonyManager tmgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);        tmgr.listen(mPhoneStateListener, 0);        super.onDestroy();    }


   

更多相关文章

  1. Android获取网络连接状态(3G/Wifi)及调用网络配置界面
  2. 【Android基础学习】Android使用fitsSystemWindows属性实现–状
  3. Android读取文件方法总结
  4. Android中Intent传递对象的两种方法(Serializable,Parcelable)!
  5. Mac安装android studio后卡在building gradle project info的解
  6. appium 【已解决】Android,每次启动手机中都会安装Appium setting
  7. android 图片压缩的几种方法
  8. Android SqLite中insert()方法解析

随机推荐

  1. Android(安卓)内存剖析 – 发现潜在问题
  2. 第三章:Creating Applications and activi
  3. Android工程中R类访问不到工程中的资源文
  4. Android(安卓)模拟器测试远程服务器成功,
  5. Android切换按钮与沉浸式状态栏的实现
  6. Android中的进程保活(不死进程)
  7. Android(安卓)Studio编译C++代码——Rele
  8. 实现Android监控任意控件或按键双击事件
  9. Android(安卓)11 功能和 API : 面向企业
  10. Android给布局设置阴影