最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

android音樂播放器監(jiān)聽電話狀態(tài)實(shí)現(xiàn)代碼

 更新時(shí)間:2013年11月02日 09:15:50   作者:  
在手機(jī)上播放音樂的時(shí)候,我們希望監(jiān)聽電話的狀態(tài),當(dāng)然在MID上沒有電話功能,不需要監(jiān)聽

如下代碼是監(jiān)聽電話的狀態(tài),代碼簡(jiǎn)單不做介紹直接看代碼:

復(fù)制代碼 代碼如下:

 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;
    }
   }
  }
 };

使用的時(shí)候呢,就在service 的oncreate 里面添加,如下:
復(fù)制代碼 代碼如下:

 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 里面刪除就可以了
復(fù)制代碼 代碼如下:

 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();
 }

相關(guān)文章

最新評(píng)論

南漳县| 宁安市| 珠海市| 凤庆县| 西林县| 崇仁县| 泌阳县| 神池县| 高青县| 天镇县| 辽宁省| 县级市| 仁化县| 湟源县| 蚌埠市| 宁明县| 青海省| 昆山市| 青田县| 抚州市| 商洛市| 林芝县| 南投县| 门头沟区| 淅川县| 东源县| 元谋县| 潼关县| 阳谷县| 金湖县| 大宁县| 金沙县| 莒南县| 彩票| 都安| 定安县| 辽阳县| 清新县| 二手房| 乌拉特中旗| 色达县|