检测是否有外拨电话已回答

问题描述:

一旦ACTION_NEW_OUTGOING_CALL已广播,我需要捕获对方答案的以下事件。你能建议如何实现这一目标吗?我知道这是可能的,因为android拨号器应用程序在他们拿起时会激动地将绿色的android图标更改为该人的照片。谢谢!检测是否有外拨电话已回答

更新:我已经看到了处理传出调用的Android上的应用程序的来源。我在ContactsUtils注意到下面的方法:

/** 
* Kick off an intent to initiate a call. 
*/ 

public static void initiateCall(Context context, CharSequence 
phoneNumber) { 
    Intent intent = new Intent(Intent.ACTION_CALL_PRIVILEGED, 
      Uri.fromParts("tel", phoneNumber.toString(), null)); 
    context.startActivity(intent); } 

我想我的答案是活动监听Intent.ACTION_CALL_PRIVILEGED。因此,重新排列我的问题:有谁知道哪个活动处理Intent.ACTION_CALL_PRIVILEGED?先进的感谢您

+0

您是否找到解决问题的方法?我也在寻找相同的解决方案。我想知道另一个最终用户是否接听了电话,或者他已断开连接 – 2011-04-27 12:42:45

+0

目前无法检测到他们确切接听电话的时间;来电者应用程序使用内部意图。 – mobilekid 2011-04-28 14:31:32

+0

是的,这是我今天得出的结论: - |,不管怎样,谢谢 – 2011-04-28 14:36:04

它不一定需要可能捕获此作为外部应用程序。绿色的android图标是控制调用的应用程序的一部分,因此它不需要广播来更改图标。

+4

是的,但是,我确实需要捕捉这个事件! – mobilekid 2010-02-12 09:33:49

我不认为有这样的API,也没有用于发送DTMF的API,这是因为您无法分辨呼叫何时连接。

您可能能够做到这一点的唯一方法是通过解析Logcat日志的,没有PhoneStateListener事件可用于此。

一些在这里问它:https://code.google.com/p/android/issues/detail?id=14266

不管怎样,在上述版本的Android 4.2作为logcat的是“沙盒”,它可能是不可能的...

+0

如果我们将app的targetSdkVersion设置为 2017-01-06 10:59:57

+1

恐怕不是。因为这是电话应用程序的沙盒装日志。无论您的应用正在使用哪个sdk都无关紧要。 – 2017-05-29 13:51:03

至于Android的电话管理器来说你无法以编程方式检测呼叫是否已被应答。这就是说,你无法知道用户何时在另一端选择了电话。 Android有3个电话管理器状态,他们都不能检测到电话是否实际回答(如果有外拨电话)