Java Android语音通话记录

Java Android语音通话记录,java,android,android-manifest,Java,Android,Android Manifest,我想有一些代码被通知任何传入和传出的语音呼叫。我需要掌握以下所有信息: 如果是呼入或呼出的电话 已拨号码或来电显示电话号码 通话持续时间,或者是未接来电 如果我能获得更多的联系信息,特别是联系人姓名,如果电话号码与手机联系人列表中的某个人匹配,这也会非常顺利,但这部分是可选的 我需要我的代码在通话结束后立即获取此信息。也许我只是没有寻找正确的术语,但我真的很难找到任何我将如何实现这一点的例子 如果有人能提供一个代码示例来实现这一点,并在清单文件中提供我需要的权限和任何类型的广播接收器设置,那

我想有一些代码被通知任何传入和传出的语音呼叫。我需要掌握以下所有信息:

  • 如果是呼入或呼出的电话
  • 已拨号码或来电显示电话号码
  • 通话持续时间,或者是未接来电
如果我能获得更多的联系信息,特别是联系人姓名,如果电话号码与手机联系人列表中的某个人匹配,这也会非常顺利,但这部分是可选的

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


如果有人能提供一个代码示例来实现这一点,并在清单文件中提供我需要的权限和任何类型的广播接收器设置,那就太好了。

a而内容提供商将为您提供大部分(如果不是全部的话),通过设置清单中的
android.permission.PROCESS\u outgoing\u calls
权限,您应该能够通过收听
android.intent.action.NEW\u outgoing\u CALL
广播事件来直接观看传出呼叫

我想这应该适用于其他设备;至少在我的HTC Hero上,这给了我一个
意图
,其中包括被呼叫的电话号码、联系人姓名加上联系人的URI和被呼叫的个人号码

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