Android语音通话记录

时间:2009-12-30 00:24:31

标签: java android android-manifest

我想要通知任何传入和传出语音呼叫的代码。我需要抓住以下所有内容:

  • 如果是来电或拨打电话
  • 拨打号码或来电来电号码
  • 通话时长,或是否是未接来电

如果我可以获得更多联系信息,特别是联系人姓名,如果电话号码与手机联系人列表中的某个人匹配,那么这也是非常光滑的,但该部分是可选的。

我需要我的代码才能在通话结束后立即获取此信息。也许我只是不是在寻找正确的术语,但我很难找到任何有关如何实现这一目标的例子。

如果某人可以提供完成此操作的代码示例,以及我在清单文件中需要的权限和任何类型的广播接收器类型,那就太棒了。

2 个答案:

答案 0 :(得分:4)

通过在清单中设置android.intent.action.NEW_OUTGOING_CALL权限,您可以通过收听android.permission.PROCESS_OUTGOING_CALLS广播事件来直接观看拨出电话。

我想这应该适用于其他设备;至少在我的HTC Hero上,这给了我一个Intent个额外的内容,包括被叫的电话号码,联系人的姓名加上联系人的URI和被叫的个人号码。

至于获取有关来电或未接来电(以及实际拨出电话)的完整信息,我认为Mark提及的解决方案是观看CallLog内容提供商的更改,或者在相关{{1}之后进行投票事件已被解雇。

答案 1 :(得分:1)

PhoneStateListenerCallLog内容提供商会为您提供最多(如果不是全部)所需内容。