2009-12-30 121 views
3

我希望有一些代码被通知任何传入和传出的语音通话。我需要抓住以下所有:Android语音通话记录

  • 如果是呼入或呼出
  • 拨打的号码,或来电呼叫者ID电话号码通话的
  • 持续时间,或者如果它是一个未接来电

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

一旦通话结束,我需要我的代码才能获取这些信息。也许我只是没有寻找正确的术语,但我真的很难找到我如何完成这个任务的任何例子。

如果有人能够提供一个代码示例来完成此操作,以及在清单文件中需要的权限和任何类型的广播接收器类型的设置,那就太好了。

回答

4

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

我想这应该适用于其他设备;至少在我的HTC Hero中,这给了我一个包括被叫号码,联系人姓名以及联系人URI和个人号码被调用的全部额外信息。

至于混得来电或未接来电(实际上传出呼叫)的完整信息,我相信马克提到的解决方案是相关PhoneStateListener事件已被解雇后要监视更改的CallLog内容提供商或调查。