通话结束时更改号码

时间:2013-07-08 01:44:16

标签: android

我正在开发一个应用程序,它与被调用的数字一起工作 - 它会改变它们。通话结束后,我想更改一个被叫号码,用户将在“通话记录”中看到更改后的号码。

我想要做的原因是我的应用程序为拨出呼叫添加了前缀,当呼叫结束时,我希望用户能够看到他们刚刚调用的人而没有看到前缀。否则,如果一个号码将带有前缀的呼叫记录,他们将无法做到这一点 - Android将不会将此号码识别为电话簿中存在的号码(假设确实如此)。所以这只是用户的便利。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

看看这个:http://developer.android.com/reference/android/content/ContentProvider.html。 您必须在呼叫结束时实现BroadcastReceiver以便赶上。之后,您可以使用update()方法更改电话号码。 CallLog从ContentProvider获取与联系人链接的信息。

所以我得到了一个未接来电和名字。在我改变了ReadState的CallState之后。 这是一个如何获得未接来电数的示例。

private int getUnreadCallsCount()
{
    if (c != null)
    {
        c.close();
        c = null;
    }
    String[] projection = { CallLog.Calls.CACHED_NAME, CallLog.Calls.CACHED_NUMBER_LABEL, CallLog.Calls.TYPE };
    StringBuilder where = new StringBuilder();
    where.append(Calls.NEW);
    where.append(" = 1 AND ");
    where.append(Calls.TYPE);
    where.append(" = ");
    where.append(Calls.MISSED_TYPE);
    c = context.getContentResolver().query(CallLog.Calls.CONTENT_URI, projection, where.toString(), null, null);
    if (c != null)
    {
        c.moveToFirst();
        return c.getCount();
    }
    else
        return 0;
}