每次通话结束仅仅是用Toast告知本次通话时间。
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TelephonyManager phoneManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
phoneManager.listen(new PhoneListen(this),
PhoneStateListener.LISTEN_CALL_STATE);
}
static final class PhoneListen extends PhoneStateListener {
private final Context context;
//获取本次通话的时间(单位:秒)
int time = 0;
//判断是否正在通话
boolean isCalling;
//控制循环是否结束
boolean isFinish;
private ExecutorService service;
public PhoneListen(Context context) {
this.context = context;
service = Executors.newSingleThreadExecutor();
}
@Override
public void onCallStateChanged(int state, String incomingNumber) {
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
if (isCalling) {
isCalling = false;
isFinish = true;
se