源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

android音乐播放器监听电话状态实现代码

  • 时间:2022-10-24 14:11 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:android音乐播放器监听电话状态实现代码
如下代码是监听电话的状态,代码简单不做介绍直接看代码:
[u]复制代码[/u] 代码如下:
 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 = (player.isPlaying() || mResumeAfterCall);      try {       stub.pause();      } catch (RemoteException e) {       // TODO Auto-generated catch block       e.printStackTrace();      }     }    } else if (state == TelephonyManager.CALL_STATE_OFFHOOK) {     // pause the music while a conversation is in progress     mResumeAfterCall = (player.isPlaying() || mResumeAfterCall);     try {      stub.pause();     } catch (RemoteException e) {      // TODO Auto-generated catch block      e.printStackTrace();     }    } else if (state == TelephonyManager.CALL_STATE_IDLE) {     // start playing again     if (mResumeAfterCall) {      // resume playback only if music was playing      // when the call was answered      try {       stub.resume();      } catch (RemoteException e) {       // TODO Auto-generated catch block       e.printStackTrace();      }      mResumeAfterCall = false;     }    }   }  };
使用的时候呢,就在service 的oncreate 里面添加,如下:
[u]复制代码[/u] 代码如下:
 public void onCreate() {   player = new MediaPlayer();   super.onCreate();   TelephonyManager tmgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);   tmgr.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);   IntentFilter filter = new IntentFilter();   filter.addAction(SERVICECMD);   filter.addAction(PAUSE_ACTION);   receiver = new MusicServiceReceiver();   registerReceiver(receiver, filter);  }
在ondestroy 里面删除就可以了
[u]复制代码[/u] 代码如下:
 public void onDestroy() {   // Log.e(TAG, "onDestroy" +player.isPlaying() );   // System.out.println("onDestroy");   unregisterReceiver(receiver);   player.release();   player = null;   TelephonyManager tmgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);   tmgr.listen(mPhoneStateListener, 0);   super.onDestroy();  }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部