Android语音通话记录

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

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

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

一旦呼叫结束,我需要我的代码来获取这些信息。 也许我只是不是在寻找正确的术语,但我很难找到任何能够实现这一目标的例子。

如果有人可以提供完成此操作的代码示例,以及清单文件中需要的权限和任何类型的广播接收器类型的设置,那将是很好的。

您应该能够通过在清单中设置android.permission.PROCESS_OUTGOING_CALLS权限,通过侦听android.intent.action.NEW_OUTGOING_CALL广播事件来直接观看拨出呼叫。

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

至于获取有关来电或未接来电(以及实际拨出电话)的完整信息,我认为Mark提到的解决方案是观察CallLog内容提供商的更改,或者在相关的PhoneStateListener事件被触发后进行轮询。

PhoneStateListenerCallLog内容提供程序将为您提供大部分(如果不是全部)所需内容。