发布于 2016-02-22 23:58:39 | 220 次阅读 | 评论: 0 | 来源: 网友投递
Android移动端操作系统
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
如下代码是监听电话的状态,代码简单不做介绍直接看代码:
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;
}
}
}
};
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);
}
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();
}