检测呼出是否已被应答

一旦广播了ACTION_NEW_OUTGOING_CALL ,我需要捕获对方答案的以下事件。 你能build议如何达到这个目的吗? 我知道这是可能的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 ? 先进的谢谢你

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

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

就android的电话pipe理员而言,你无法以编程方式检测呼叫是否已经被应答。 这就是说,你没有select知道用户何时在另一端select了电话。 Android有3个电话pipe理器状态,它们都不能检测到这个电话是否被实际应答(如果有外出电话)

唯一能够做到这一点的方法是parsingLogcat日志 ,没有PhoneStateListener事件可用。

有些人在这里要求: https : //code.google.com/p/android/issues/detail?id = 14266

无论如何,在Android 4.2以上的版本,因为Logcat是“沙盒”,这可能是不可能的…