2
我有一個問題,我使用一個擴展片段來通過MusicPlayer播放音樂的類,在這個類內使用PhoneStateListener和TelephonyManager暫停音樂,如果有來電,一切正常,懷疑有是當我啓動應用程序,歌曲自動啓動,並希望避免這一點,任何建議?我的代碼在這裏部分:Android碎片和電話管理器
PS:對不起我的英文不好
public class FragmentPlaySong extends Fragment implements MediaPlayer.OnCompletionListener {
private MediaPlayer mediaPlayer;
...
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_play_song, container, false);
mediaPlayer = new MediaPlayer();
mediaPlayer.setOnCompletionListener(this);
...
...
//Service MediaPlayer pause when Incoming Call
PhoneStateListener phoneStateListener = new PhoneStateListener(){
public void onCallStateChanged(int state, String incomingNumber){
if (state == TelephonyManager.CALL_STATE_RINGING) {
if (mediaPlayer != null){
if (mediaPlayer.isPlaying()){
mediaPlayer.pause();
}
}
} else if(state == TelephonyManager.CALL_STATE_IDLE) { //here start song when start application
if (mediaPlayer != null){
if (!mediaPlayer.isPlaying()){
mediaPlayer.start();
}
}
} else if(state == TelephonyManager.CALL_STATE_OFFHOOK) {
if (mediaPlayer != null){
if (mediaPlayer.isPlaying()){
mediaPlayer.pause();
}
}
}
super.onCallStateChanged(state, incomingNumber);
}
};
TelephonyManager mgr = (TelephonyManager) getActivity().getSystemService(Context.TELEPHONY_SERVICE);
if (mgr != null){
mgr.listen(phoneStateListener,PhoneStateListener.LISTEN_CALL_STATE);
}
return view;
}
OK OK,這是簡單的東西。謝謝。 – 2014-09-24 13:48:53