4

我想让一些代码收到任何传入和传出语音呼叫的通知。我需要掌握以下所有内容:

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

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

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

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

4

2 回答 2

5

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

我想这应该适用于其他设备;至少在我的 HTC Hero 上,这给了我Intent很多额外的东西,包括被呼叫的电话号码、联系人的姓名以及联系人的 URI 和被呼叫的个人号码。

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

于 2009-12-30T01:00:15.480 回答
1

APhoneStateListenerCallLog内容提供商会为您提供大部分(如果不是全部)您需要的东西。

于 2009-12-30T00:45:49.107 回答