代码之家  ›  专栏  ›  技术社区  ›  Mark B

Android语音通话记录

  •  3
  • Mark B  · 技术社区  · 15 年前

    我想让一些代码被通知任何传入和传出的语音呼叫。我需要抓住以下所有东西:

    • 如果是呼入或呼出电话
    • 已拨号码或来电显示号码
    • 通话持续时间,或者是未接电话

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

    我需要我的代码来获取这些信息,只要一个电话结束。也许我只是没有寻找正确的术语,但我真的很难找到任何例子,我将如何做到这一点。

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

    2 回复  |  直到 15 年前
        1
  •  4
  •   Christopher Orr    15 年前

    你应该可以通过监听 android.intent.action.NEW_OUTGOING_CALL 通过设置 android.permission.PROCESS_OUTGOING_CALLS 在你的名单上。

    我想这应该适用于其他设备;至少对于我的htc英雄来说,这给了我一个 Intent 所有附加功能,包括正在呼叫的电话号码、联系人的姓名、联系人的uri和正在呼叫的个人号码。

    至于获得来电或未接来电(实际上是拨出电话)的完整信息,我相信Mark提到的解决方案是 CallLog 内容提供程序更改,或在相关 PhoneStateListener 事件已被触发。

        2
  •  1
  •   CommonsWare    15 年前

    PhoneStateListener 以及 CallLog 内容提供商将提供您所需的大部分(如果不是全部)内容。