android音乐播放器监听电话状态实现代码
android音乐播放器监听电话状态实现代码
发布时间:2016-12-28 来源:查字典编辑
摘要:如下代码是监听电话的状态,代码简单不做介绍直接看代码:复制代码代码如下:privatebooleanmResumeAfterCall=fal...

如下代码是监听电话的状态,代码简单不做介绍直接看代码:

复制代码 代码如下:

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 里面添加,如下:

复制代码 代码如下:

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 里面删除就可以了

复制代码 代码如下:

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

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新安卓软件开发学习
热门安卓软件开发学习
编程开发子分类