如何获得传出通话开始通话时间?
问题描述:
我想在应用程序中记录我的呼叫。我在广播接收器中使用Telephonymanager
和onCallStateChanged
。如何获得传出通话开始通话时间?
因此,我们有三种状态:
TelephonyManager.CALL_STATE_RINGING
TelephonyManager.CALL_STATE_OFFHOOK
TelephonyManager.CALL_STATE_IDLE
当我开始呼出,与CALL_STATE_OFFHOOK
的onCallStateChanged
被调用。然后我等待答案。当一个人接听电话时,对话开始,但是onCallStateChanged
不会被这3个状态中的任何一个触发。如何获得确切的时间,当我们开始讲话?
答
这是不可能的,除非您的应用程序是设备上的默认电话应用程序。
如果你的应用程序是一个手机应用程序,用户手动将其设置为默认的手机应用程序,并且您的应用程序还实现InCallService
处理呼入电话屏幕。
您将在InCallService
实现获得包含这些信息Call
类型的对象(这样你就可以切换屏幕上的UI当这样的事件发生。
这是不可能得到,如果你的Call
对象'不是默认的电话应用程序恕我直言。
当一个人真的拿起电话时没有任何事件被触发。目前只有这些事件是不可能的。 –