我正在尝试使用不同的状态从android应用程序获取最后一次通话的持续时间。最佳解决方案是每当通话结束时,将同时保存主叫号码和通话时长(该号码正在工作,所以我只需要通话时长)。
EXTRA_STATE_IDLE应该触发。但是,有没有办法在此函数中获得实际的通话持续时间?
公共类PhoneStateReceiver扩展了BroadcastReceiver {
long elapsedMillis = 0;
@Override
public void onReceive(Context context, Intent intent) {
String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
String number = intent.getExtras().getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
Chronometer chronometer = new Chronometer(context);
try {
if(state.equals(TelephonyManager.EXTRA_STATE_RINGING)){
Toast.makeText(context, number ,Toast.LENGTH_SHORT).show();
}
if ((state.equals(TelephonyManager.EXTRA_STATE_OFFHOOK))){
Toast.makeText(context,"dg",Toast.LENGTH_SHORT).show();
}
if (state.equals(TelephonyManager.EXTRA_STATE_IDLE)){
}
}
catch (Exception e){
Log.e("MYAPP", "exception", e);
e.printStackTrace(); }
}
}