一、service中
private TelephonyManager tm;
@Override
public void onCreate() {
// 注册一个电话状态的监听器.
tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
listener = new MyPhoneStateListener();
tm.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);
super.onCreate();
}
@Override
public void onDestroy() {
tm.listen(listener, PhoneStateListener.LISTEN_NONE);// 取消监听
listener = null;
super.onDestroy();
}
private class MyPhoneStateListener extends PhoneStateListener {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
switch (state) {
case TelephonyManager.CALL_STATE_RINGING: // 响铃状态.
String address = AddressDao.getAddress(incomingNumber);
// Toast.makeText(getApplicationContext(), address, 1).show();
showLocation(address);
break;
case TelephonyManager.CALL_STATE_OFFHOOK: // 通话状态
break;
case TelephonyManager.CALL_STATE_IDLE:// 空闲状态
break;
}
}
}
}
二、Activity中开启/关闭服务(清单文件中声明服务)