监听电话呼入和呼出
// service內(nèi)部類,監(jiān)聽撥打接聽電話,如果有電話呼入,則暫停播放,通話結(jié)束,繼續(xù)播放public static class PhoneStatReceiver extends BroadcastReceiver {private static boolean bPlayingFlg = false;@Overridepublic void onReceive(Context context, Intent intent) {// TODO Auto-generated method stub// 呼出電話if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) { if (null != mMediaPlayer) {if (mMediaPlayer.isPlaying()) {bPlayingFlg = true;pause(); // 暫停播放MusicDemo.mbSeekBarUpdateFlg = false; // 停止更新播放進度}}} else {// 呼入電話TelephonyManager tm = (TelephonyManager)context.getSystemService(Service.TELEPHONY_SERVICE); switch (tm.getCallState()) {case TelephonyManager.CALL_STATE_RINGING:// 當(dāng)前是來電if (null != mMediaPlayer) {if (mMediaPlayer.isPlaying()) {bPlayingFlg = true;pause(); // 暫停播放}}break;case TelephonyManager.CALL_STATE_OFFHOOK:break;case TelephonyManager.CALL_STATE_IDLE: // 掛機 Device call state: No activity.if (bPlayingFlg) {// 恢復(fù)播放pauseToPlay();MusicDemo.mbSeekBarUpdateFlg = true; // 更新播放進度bPlayingFlg = false;}break;}}}}
在manifest中增加權(quán)限
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission><uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"></uses-permission>
總結(jié)
- 上一篇: JavaFX应用在打包时fx:deplo
- 下一篇: 宾语从句