无法从Android中的通话记录和联系历史记录中获取相同的联系号码

时间:2010-06-11 13:35:11

标签: android

我正在尝试在通话记录和Android手机的联系簿中搜索特定的联系号码 但我发现联系号码以不同的方式存储在联系簿和通话记录中。对于例如我有一个联系电话9889880912来搜索通话记录和联系簿。

为此,我执行以下操作:

在android模拟器中添加联系人。当我将联系人的联系电话号码写为9889880912时,它会自动更改为988-988-0912。短划线符号( - )会自动插入联系人号码中。我保存了号码。

从模拟器中调用此号码。

现在,使用我的代码,          当我在9889880912搜索联系人列表中的联系号码时,它没有显示任何结果     当我尝试按联系电话988-988-0912搜索时,会显示联系簿中的联系信息。

但是,当我尝试在通话记录历史记录中搜索988-988-0912时,会显示该消息。但是当我试图在通话记录中搜索9889880912时,我没有得到任何结果。

请帮我解决我的问题。我可以通过联系方式获取9889880912的联系人搜索。

我的代码:

/**  Search from contact book  **/
Cursor phoneResult = context.getContentResolver().query( 
    ContactsContract.CommonDataKinds.Phone.CONTENT_URI ,
    columnNames,
    queryString,
    new String[] {String.valueOf(phoneNumber)}, 
    null);

if(phoneResult.getCount() > 0)
    Log.d("DEBUG","at least one contact with phonenumber");

/**  Search from call log   **/
Cursor callLogResult = context.getContentResolver().query(
    callLogURI, 
    columnNames,
    Calls.NUMBER + "=?", 
    new String[]{ String.valueOf(mobileNumber) },
    null);

if(callLogResult.getCount() > 0) 
    Log.d("DEBUG","At least one call Log found");

请帮我解决我的问题。很久以来我一直坚持这一点,无法找到解决方案。

1 个答案:

答案 0 :(得分:1)

你使用什么API级别?对此有何限制?

如果5或更高,您可以尝试使用PhoneLookup,请参阅例如:http://developer.android.com/reference/android/provider/ContactsContract.PhoneLookup.html