广播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 :(得分:7)
我认为没有这样的API,也没有用于发送DTMF的API,原因是您无法判断呼叫何时被连接。
答案 1 :(得分:3)
不一定需要将其作为外部应用程序捕获。绿色android图标是控制呼叫的应用程序的一部分,因此它不需要广播来更改图标。
答案 2 :(得分:2)
就Android的电话管理器而言,你无法以编程方式检测呼叫是否已被应答。这就是说,你没有选择知道用户何时在另一端选择了手机。 Android有3种状态的电话管理器,但没有一种能够检测到呼叫是否实际应答(如果是呼出呼叫)
答案 3 :(得分:1)
你能够做到这一点的唯一方法是解析Logcat日志,没有可用的PhoneStateListener事件。
有些人在这里要求:https://code.google.com/p/android/issues/detail?id=14266
无论如何,在Android 4.2以上的版本中,因为Logcat是“沙盒”,所以可能是不可能的......