无法从Android中的呼叫日志和联系人历史记录中获取相同的联系人号码

无法从Android中的呼叫日志和联系人历史记录中获取相同的联系人号码,android,Android,我正试图在android手机的通话记录和联系人簿中搜索特定的联系人号码。 但我发现联系人号码以不同的方式存储在联系人簿和通话记录中。例如,我有一个联系电话9889880912可在通话记录和联系簿中搜索 为此,我执行以下操作: 在android emulator中添加联系人。当我将联系人的联系人号码写为9889880912时,它会自动更改为988-988-0912。破折号(-)会自动插入联系人号码中。我保存了号码 从仿真器拨打此号码 现在,使用我的代码, 当我通过9889880912在联系人列表中

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

为此,我执行以下操作:

在android emulator中添加联系人。当我将联系人的联系人号码写为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");

请帮我解决我的问题。我很长一段时间以来一直在坚持这个问题,并且找不到解决方案。

您使用的API级别是什么?有什么限制吗

如果为5或更高,您可以尝试使用PhoneLookup,例如,请参阅: